有人可以告诉我当你使用innoDB存储引擎LEFT JOIN表进行SELECT FOR UPDATE时会发生什么。
是否所有连接表中的所有行都被锁定,或者只是主表行?
例如,如果我这样做..
SELECT userID, countryID FROM user LEFT JOIN address USING (userID) WHERE userID = 1 FOR UPDATE
地址表中的行也会被锁定吗?或者我需要单独锁定它吗?
答案 0 :(得分:4)
SELECT FOR UPDATE锁定行和任何关联的索引条目,就像为这些行发出UPDATE语句一样。 但 如果启用了自动提交,则不会锁定与规范匹配的行。