sql - 更新事务内的外键失败

标签 sql postgresql transactions h2 consistency

我有一个表 A 通过复合外键引用表 B(我们使用具有复合键的 Quartz)。
当我想更新复合键时,我必须为两个表更新它,但是:

  • 当我从表 A 开始时,它失败了,因为表 B 中没有有效的外键。
  • 当我从表 B 开始时,它不允许我更新它,因为表 A 仍然引用记录。

我一直认为我应该能够在交易中执行此操作,因为交易前后数据是一致的,但我无法让它在 Postgres 和 H2 上工作。

我对事务一致性的理解有什么问题?

最佳答案

首先在 B 中插入有效 key 。然后更新 A。最后删除B中的无效键。

关于sql - 更新事务内的外键失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25244850/

相关文章:

sql - 如何修改这个特定的查询?

每个子句上带有参数的并集的 SQL View

postgresql - 是否可以使用 UPDATE 中的 RETURNING 子句作为 INSERT 查询子句的查询子句?

sql - T SQL 每天只选择第一条记录

sql - 应该使用哪种数据类型来存储哈希值?

SQL 获取未在项目中工作的名称

mysql - R并行进程的数据库连接池

php - 在 PHP 中到处使用准备好的语句? (PDO)

java - Play 2.1.1 : Unable to rollback transaction with ebean orm

objective-c - 使用 sqlite3_exec 在 Objective-c 中执行事务并没有达到预期效果