【发布时间】:2018-02-20 17:50:49
【问题描述】:
我需要更新由主键/外键连接的两个表中的列。我的问题是,当我尝试单独更新任一表时,我得到以下任一(取决于我尝试更新的表):
ORA-02292:违反完整性约束 (URMS.EMSR_EMS_FK) - 找到子记录
或
ORA-02291:违反完整性约束 (URMS.EMSR_EMS_FK) - 未找到父密钥
有没有办法用新值同时更新两个表?我找到的一个解决方案是复制现有行并将它们作为新行插入,然后可以对其进行更新——然后可以删除旧行。
这是唯一的解决方案还是有更简单的解决方法?
【问题讨论】:
-
很久以前,Oracle 决定永远不要改变 PK 并且永远不会支持
UPDATE CASCADE。但是有解决方法asktom.oracle.com/pls/asktom/… -
您应该尽可能避免更新主键
标签: sql plsql oracle-sqldeveloper plsqldeveloper