我有一个表 A 通过复合外键引用表 B(我们使用具有复合键的 Quartz)。
当我想更新复合键时,我必须为两个表更新它,但是:
- 当我从表 A 开始时,它失败了,因为表 B 中没有有效的外键。
- 当我从表 B 开始时,它不允许我更新它,因为表 A 仍然引用记录。
我一直认为我应该能够在交易中执行此操作,因为交易前后数据是一致的,但我无法让它在 Postgres 和 H2 上工作。
我对事务一致性的理解有什么问题?
最佳答案
首先在 B
中插入有效 key 。然后更新 A
。最后删除B
中的无效键。
关于sql - 更新事务内的外键失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25244850/