テーブルに 5 つの行 (1 から 5) があります。更新のために行2をロックしたいのですが、その間に誰かが行4を更新しようとすると、更新できるはずです。
以下のコードでこれを試していますが、行レベルではなくテーブルレベルでロックを配置しているように感じます。
------ セッション 1
START TRANSACTION;
SELECT * FROM test WHERE t=1 FOR UPDATE;
UPDATE test SET NAME='irfandd' WHERE t=2;
COMMIT;
----- セッション 2 (ブロックされている)
START TRANSACTION;
UPDATE test SET NAME='irfandd' WHERE t=4;
COMMIT;