これは非常に単純な質問ですが、Google で役に立つ答えが見つかりません。
SELECTにREAD LOCK、UPDATEステートメントにWRITE LOCKがあることを読んでいます。ただし、テーブルに INSERT するときに何らかの種類の LOCK があるかどうかを調べようとしていますか?
テーブルがエンジンとして InnoDB を使用していることを前提としています。
挿入時に、InnoDB はいわゆる「ギャップ ロック」を作成します。
挿入意図ギャップ ロックと呼ばれるタイプのギャップ ロックは、行挿入の前に INSERT 操作によって設定されます。このロックは、同じインデックス ギャップに挿入する複数のトランザクションが、ギャップ内の同じ位置に挿入されていない場合、相互に待機する必要がないように、挿入する意図を通知します。4 と 7 の値を持つインデックス レコードがあるとします。5 と 6 の値を挿入しようとする個別のトランザクションは、挿入された行の排他ロックを取得する前に、挿入インテンション ロックを使用して 4 と 7 の間のギャップをそれぞれロックしますが、そうではありません。行が競合していないため、互いにブロックします
それに加えて、提供された値に対して一意のインデックスがロックされ、2 つの異なるトランザクションが同じ値を挿入しないようにします (間違いでなければ、ギャップ ロックとは少し異なります)。
ギャップ ロックの説明に加えて、Mysql INNODB は挿入される行に対して ROW-LOCK を実行します。
innoDB の場合、mysql は行レベルのロックを使用します。挿入するときに、ロックする行がありません。作成しているためです。