私のコメントに対するあなたの回答に基づいて、テーブルロックを手動で処理することを本当に心配する必要はないと思います。 InnoDBは行レベルのロックをサポートし、自動コミットが有効になっていると(デフォルトでは)、すべての個々のクエリは実際にはトランザクション方式で処理されます。
ここで、単一のトランザクションとして処理する必要がある複数のSQLクエリがある場合(つまり、1つのテーブルを更新してから、別のテーブルを更新します-両方が成功するか、両方がロールバックされます)、トランザクションを具体的に開始してコミットするか、暫定クエリが実行された後にロールバックします。
SET TRANSACTION
を使用することもできます トランザクション分離レベルを変更する必要がある場合のステートメント(デフォルトでは「REPEATABLEREAD1」です)。
詳細については、MySQLドキュメント