使用LEFT JOIN进行更新的MYSQL innoDB SELECT

时间:2015-06-08 16:04:34

标签: sql mysqli innodb

有人可以告诉我当你使用innoDB存储引擎LEFT JOIN表进行SELECT FOR UPDATE时会发生什么。

是否所有连接表中的所有行都被锁定,或者只是主表行?

例如,如果我这样做..

SELECT userID, countryID FROM user LEFT JOIN address USING (userID) WHERE userID = 1 FOR UPDATE

地址表中的行也会被锁定吗?或者我需要单独锁定它吗?

1 个答案:

答案 0 :(得分:4)

SELECT FOR UPDATE锁定行和任何关联的索引条目,就像为这些行发出UPDATE语句一样。 但 如果启用了自动提交,则不会锁定与规范匹配的行。

MySQL InnoDB locks on joined rows