【发布时间】:2012-08-15 10:26:34
【问题描述】:
我有一个表foo_bar 和另一个表spam_eggs,其中fb 外键指向foo_bar。 spam_eggs 行在其相关的spam_eggs.fb 被删除时被级联删除。
我正在使用 PostgreSQL。
在事务中,我使用SELECT... FOR UPDATE 锁定spam_eggs 行。在此事务期间,另一个事务试图DELETE FROM... 我锁定行的相关foo_bar。这会触发错误,还是我锁定的行会导致查询阻塞,直到我的原始更新事务结束?
【问题讨论】:
-
短版:它会阻塞。长版:当它解除阻塞时,会发生什么取决于两个事务的隔离级别是什么,第一个事务还做了什么,以及第一个事务是回滚还是提交。见答案。
标签: sql postgresql select transaction-isolation