2016-05-17 119 views
1

我在其他几个表中有一个表student(id,name,address)和student.id引用。让我们假设id是120,这个id在不同的表中有几个其他的条目。更新所有外键引用

现在我想将id值更新为130以及所有外键引用。

一种方法我想到的PL/SQL的方式 - 在ALL_CONSTRAINTS做一个元数据查询表并找到FK参考表,然后运行查询到所有的人都为student_id数据= 130,然后对其进行更新。还有其他更好的选择吗?

回答

1

对于在其他数据库产品中发现的参照约束,Oracle没有on update cascade选项。

一般来说,主键的选择应该是几乎不可能改变的。如果学生证可以在“正常业务过程”中更改,则不应将其用作主要密钥;也许系统生成的连续号码可能扮演这个角色。

好吧,那就是未来。木已成舟,覆水难收。你可能会觉得这很有帮助;请注意,我没有使用它,我只是为了将来的考虑标记它。祝你好运!

http://tkyte.blogspot.com/2009/10/httpasktomoraclecomtkyteupdatecascade.html