在视图上添加外键约束

时间:2014-01-17 14:56:04

标签: ibm-midrange alter-table

在ibm db2数据库上,我有两个表,TABLE1和TABLE2。 我在TABLE1上也有一个逻辑文件LOGICAL1 LOGICAL1根据某些TABLE1字段的值过滤TABLE1中的记录。 (它就像一个sql视图)

我想在TABLE2和逻辑文件LOGICAL1之间添加一个外部约束。

当我尝试这样做时,我有一条错误消息SQ0157说LOGICAL1在外键子句中无效,无法在外键子句中指定逻辑文件或视图。

那么,有没有办法对过滤后的表进行约束?

3 个答案:

答案 0 :(得分:3)

外来(引用)约束只能应用于物理表。

以下是一些文档链接以获取更多信息:

IBM i 7.1 Information Center> Database> Reference> SQL reference> Concepts> Tables> Constraints> Referential constraints

答案 1 :(得分:2)

约束意味着所有子行都有父行。

考虑在子表上编写一个触发器,该子表使用LOGICAL1来验证是否允许插入/写入。

答案 2 :(得分:1)

正如詹姆斯所指出的,FK约束仅适用于物理表。 AFAIK,此规则适用于所有RDBMS系统。

但如果你把约束放在物理上,它的效果就会在视图中看到。

查尔斯