事务是否锁定链接表?

时间:2011-04-20 14:27:37

标签: sql transactions locking

我想知道锁定表的事务是否也会锁定所有其他链接表?

示例:

表1:

userId | ready
--------------
    3  |  1
    1  |  0
   ... | ...

表2:

id | name
----------
0  | John
1  |  0
n  | ...

表1有表2的外键。

表2的id是Pkey。

如果我在事务中更新表1,它会锁定表2吗?

如果我在事务中更新表2,它会锁定表1吗?

[编辑]

更多信息: 锁定升级:表格 userId通过外键链接到id。

我希望这是足够的信息。

1 个答案:

答案 0 :(得分:2)

在四大数据库(OracleSQL ServerPostgreSQLMySQL)的数据库中,对一个链接表的更新将锁定另一个表

是的,它可能锁定表格,请参阅@a_horse_with_no_name的评论。

此外,如果您的引用约束被定义为CASCADESET NULL,那么对主表的更新将触发子表的更新,这当然也将锁定子表