DB2 v8 Nullable外键

时间:2012-07-31 18:55:36

标签: foreign-keys db2

DB2版本8 z / OS是否支持可以为空的外键?

例如,人员表上的一个外键到主管表(某些人没有主管)。

2 个答案:

答案 0 :(得分:2)

根据文档,应该可以在DB2 for z / OS v8中使用可以为空的外键。有关这些详细信息,请参阅插入更新删除规则:

插入规则 外键的非空插入值必须与父表的父键的某个值匹配。如果值的任何组件为null,则复合外键的值为null。

更新规则 外键的非空更新值必须与父表的父键的某个值匹配。如果值的任何组件为null,则复合外键的值将被视为null。

删除规则 控制删除父表行时发生的情况。定义引用约束时所做的操作选择是RESTRICT,NO ACTION,CASCADE或SET NULL。仅当外键的某些列允许空值时,才能指定SET NULL。

网站参考:http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2.doc.sqlref%2Frcncrfi.htm

DB2 v8外键子句引用(还指出允许空值):http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/admin/c0004981.htm

答案 1 :(得分:1)

尝试它比研究文档更快,这些文档将在2013年1月之后从IBM网站上删除。

以下是CREATE TABLE声明的部分解释。

  

引用约束的外键由标识的列组成。 |每个列名必须是一个非限定名称,用于标识除LOB,ROWID或安全标签列之外的表的列,并且不能多次标识同一列。已标识列的数量不得超过64,并且其长度属性的总和不得超过255减去允许空值的列数。如果FOREIGN KEY和父表与先前定义的引用约束的FOREIGN KEY和父表相同,则引用约束是重复的。重复引用约束的规范将被忽略,并带有警告。

所以,是的,外键可以包含一个或多个可为空的列。