DB2 Foreign Key

Grammar:

alter table t_mapping add constraint PK_MAPPING primary key(mapping_id);  

alter table t_mapping add foreign key(criterion_id) references t_criteria(criterion_id);

create unique index idx_log on t_log(cty, start_date, end_date);


Below is from others:

DB2 的Foreign Key在DELETE上有四种设置:

No Action         : 不要被字面意思所影响,它的意思其实和Restrict delete一样。
Restrict delete:  表示删除父表记录时如果存在子表的关联记录,将被回滚,并且报错;
Cascade          :  表示在删除父表的同时删除子表的记录(级联删除.);
Set Null            :  表示在删除父表的同时,子表外键列被设置为 null;

 No Action和Restrict delete的区别只是在于一点:

Note: No Action is the default situation for DB2 UDB on Unix or Windows. Restrict delete is the default situation for DB2 UDB on z/OS.

No Action 的意思为 ‘不做任何操作’。被有些人理解错误时因为他们没有想到外键的一个关键作用:防止数据孤岛的错在。

所以No Action 的真正含义为 ‘不做任何操作,DB按照原有的逻辑去处理’。而DB原有的逻辑就是Restrict delete的逻辑。

from: http://blog.csdn.net/zwj_lmss/article/details/6598472

你可能感兴趣的:(DB2 Foreign Key)