2
マニュアルでは、InnoDBに行レベルのロックが設定されていると言われていますが、FOR UPDATE
文で行を選択すると、その行に新しい行を挿入できません。結局、新しい行はロックされてはならず、選択されていませんでした。MySQL 5 InnoDBの部分的にロックされたテーブルに新しい行を挿入できないのはなぜですか?
マニュアルでは、InnoDBに行レベルのロックが設定されていると言われていますが、FOR UPDATE
文で行を選択すると、その行に新しい行を挿入できません。結局、新しい行はロックされてはならず、選択されていませんでした。MySQL 5 InnoDBの部分的にロックされたテーブルに新しい行を挿入できないのはなぜですか?
InnoDBでは、自動インクリメント列に挿入するとテーブルがロックされます。 FOR UPDATE行を選択すると、行レベルのロックが発生します。
ローロックがあるとテーブルロックを取得できないため、UPDATEはそのトランザクションがコミットされるまでINSERTを防ぎます。