MySQLでデッドロック
クエリの実行順番変えれば解決するそうですが、自分は知らないとハマるだろうなと思い、どういう動きかだけ試させていただきました。
試すテーブル
CREATE TABLE `tests3` ( `id` int(11) NOT NULL AUTO_INCREMENT, `c1` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARSET=utf8; INSERT INTO tests3 VALUES(null,'111'),(null,'222');
手順
①START TRANSACTION
↓
②START TRANSACTION
↓
①update tests3 set c1 = 'aaa' where id =1
↓
②update tests3 set c1 = 'bbb' where id =2
↓
①update tests3 set c1 = 'ccc' where id =2
デッドロックしました またひとつ勉強になりました、これでいざという時にはまらんですむぞ