gpt4 book ai didi

sql - 同时更新父子表

转载 作者:行者123 更新时间:2023-12-02 07:49:02 25 4
gpt4 key购买 nike

我需要更新通过主/外键连接的两个表中的列。我的问题是,当我尝试单独更新任一表时,我会得到以下任一结果(取决于我尝试更新的表):

ORA-02292: 违反完整性约束 (URMS.EMSR_EMS_FK) - 找到子记录

ORA-02291: 违反完整性约束 (URMS.EMSR_EMS_FK) - 未找到父 key

有没有办法用新值同时更新两个表?我发现的一个解决方案是复制现有行并将它们作为新行插入,然后可以更新新行 - 然后可以删除旧行。

这是唯一的解决方案还是有更简单的方法来解决这个问题?

最佳答案

您有几个选项作为解决方法。

  • 将约束更改为可延迟约束并延迟它。这会导致在提交时间而不是更新时间检查 key 。
  • 先更新外键为NULL,然后更新主键,最后再次更新外键。这假设没有 NOT NULL 约束
  • 如果情况变得更糟,请创建一条记录(假设给它一个保留 ID 0,以便您可以检测并避免冲突),将外键更新为该记录,然后更新主键,然后更新外键,然后删除该记录。

但是,无法像在其他数据库中使用 ON UPDATE CASCADE 那样在 Oracle 中创建同时更新两者的语句。

关于sql - 同时更新父子表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46173459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com