FK约束使用替换表的记录吗?

时间:2019-09-25 18:41:40

标签: db2 referential-integrity

[编辑:已解决。如果您认为这个问题不值得保留,请发表评论,我将其删除。否则,谁知道,这可能对其他人有用。]


环境:DB2 for IBMi

我遇到一个问题,即外键约束不允许某些 在父表中具有匹配键的记录插入。

历史:

我创建了一个php脚本来测试将一些记录上传到子表的过程,并意识到我开发的父表已经过时,并且没有满足FK约束所需的一些记录。

因此,使用绿屏,我将生产对象复制到开发服务器。我使用RSTOBJ将其放入开发机器上的库中,然后使用COPYF将其复制到生产库的相应开发版本中。 (我首先重命名了现有对象)。

新表的名称和系统名称与旧表相同。

据我所知,父表现在具有满足FK约束的所有必需行。我运行查询以验证是否存在必要的行。 它们存在。

但是,当我尝试在子表中插入引用原始表中没有的值的记录时,FK约束会抱怨。

是否应该进行某种“刷新”以更新FK约束?

1 个答案:

答案 0 :(得分:1)

答案是实际上 仍在引用旧表。在绿屏中 对该表进行重命名 时,会将表中的所有引用用作外键来更新表中的

您必须删除旧的FK约束,并新建一个指向正确的表。