2012-07-31 40 views
1

DB2版本8 z/OS是否支持可空鍵外鍵?DB2 v8可空鍵外鍵

例如,人表上的外鍵給主管表(其中有些人沒有主管)。

回答

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 foreign key子句引用(還指出,允許空值):http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/admin/c0004981.htm

1

這將是更快地嘗試它比學習的文件,將予以除名IBM網站2013年1月以後。

以下是對CREATE TABLE聲明的解釋部分。

參照約束的外鍵由所標識的列組成。 |每個列名必須是一個非限定名稱,用於標識除LOB,ROWID或安全標籤列之外的一列的列,並且同一列不能被標識多次。已識別列的數量不得超過64個,並且其長度屬性總和不得超過255個減去允許空值的列數。如果FOREIGN KEY和父表與先前定義的參照約束的FOREIGN KEY和父表相同,則引用約束是重複的。警告會忽略重複參考約束的規範。

所以是的,一個外鍵可以包含一個或多個可爲空的列。