このマルチアップデートクエリがある場合
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
user テーブルの行 10 には既に「same_name_i_already_had」という名前が付けられているため、更新しないでください。
一方、user_profile テーブルの行は年齢が異なるため、MySQL はそれを更新する必要があります。MySQLを RDBMS として、行レベルのロック システムを両方のテーブルのエンジンとして使用するInnoDB
を
想定すると、MySQL はその行の名前フィールドを更新する必要がないにもかかわらず、ユーザー テーブルの行をロックしますか?