在ibm db2數據庫上,我有兩個表TABLE1和TABLE2。 我還在TABLE1上有一個邏輯文件LOGICAL1 LOGICAL1根據某些TABLE1字段的值過濾來自TABLE1的記錄。 (它就像一個SQL視圖)在視圖上添加外鍵約束
我想在TABLE2和邏輯文件LOGICAL1之間添加一個外部約束。
當我試圖做到這一點,我有一個錯誤消息SQ0157說LOGICAL1在外鍵子句中無效,邏輯文件或視圖不能在外鍵子句中指定。
那麼,有沒有辦法對過濾的表格進行約束?
在ibm db2數據庫上,我有兩個表TABLE1和TABLE2。 我還在TABLE1上有一個邏輯文件LOGICAL1 LOGICAL1根據某些TABLE1字段的值過濾來自TABLE1的記錄。 (它就像一個SQL視圖)在視圖上添加外鍵約束
我想在TABLE2和邏輯文件LOGICAL1之間添加一個外部約束。
當我試圖做到這一點,我有一個錯誤消息SQ0157說LOGICAL1在外鍵子句中無效,邏輯文件或視圖不能在外鍵子句中指定。
那麼,有沒有辦法對過濾的表格進行約束?
約束意味着所有的子行都有父行。
考慮在使用LOGICAL1驗證插入/寫入是否允許的子表上寫入觸發器。
外部(引用)約束只能應用於物理表。
下面是詳細信息的一些文檔資料鏈接:
IBM i 7.1 Information Center>Database>Reference>SQL reference>Concepts>Tables>Constraints>Referential constraints
正如詹姆斯指出,FK約束僅適用於物理表。 AFAIK,這條規則適用於所有RDBMS系統。
但是,如果您將約束放在物理上,它的效果將在視圖中看到。
Charles