【发布时间】:2011-06-29 18:16:13
【问题描述】:
如果我有这个多重更新查询
UPDATE user u
INNER JOIN user_profile up ON up.user_id = u.id
SET u.name = 'same_name_i_already_had', up.profile.age = 25
WHERE u.id = 10
假设用户表中的第 10 行已经具有名称“same_name_i_already_had”,因此不应更新它。
另一方面,user_profile 表中的行有不同的年龄,所以 MySQL 应该更新它。
假设 MySQL 为 RDBMS,InnoDB 以其行级锁定系统作为两个表的引擎,
MySQL 是否锁定用户表中的行尽管不必更新该行的名称字段?
【问题讨论】:
标签: mysql locking innodb rowlocking