この「コンペアアンドスワップ」ステートメントは、エンジン(InnoDBやMyISAMなど)に関係なく常にアトミックですか?:
UPDATE tbl_name SET locked=1 WHERE id=ID AND locked <> 1;
このステートメントを使用して、トランザクションデータベーステーブルと非トランザクションデータベーステーブルの両方と互換性のある疑似行レベルのロックを実行するつもりなので、これを尋ねます。
これはMyISAMに推奨される方法ですが、ドキュメントでは代わりにトランザクションを使用することが提案されているため、これがInnoDBで機能するかどうかはわかりません。