質問: 1 AND ID2 in (1,10) 上記の場合は、ID1=1のID2=1,ID2=10にレコードロックがかかり ID1=1のID2=2,ID2=3に対してギャップロックがかかり ID1のID11に対してネクストキーロックがかかる。 ID1の1以外のデータに対してはロックがかからない ということでしょうか? それとも単純に ID1=1のID2=1,ID2=10の2レコードにレコードロックがかかるだけなのでしょうか。 単キーのロック範囲の説明の記事はよく見かけたのですが、複合キーでの情報が みつけられなかったので質問させていただきました。 分かりにくいですがよろしくお願いします。
回答: ロックを気にするレベルであれば DB はそれなりに触れると思うので、それなら簡単に確かめられる話ですから実際に試してみては? ID1, ID2 が主キーであれば、該当するレコードのみがロックされたかと思います。 これが主キーではなく、特に制約の無いキーの場合、全行がロックされる挙動であったかと思います。