Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
MySQL(InnoDB)テーブルを再帰的にロックできますか?
LOCK TABLESのドキュメントで、ネストまたは再帰についての言及が見つかりません。
デフォルトの動作は(私が観察したことに基づいて)、2番目のロックが最初のロックを暗黙的にロック解除するようです。
再帰的に機能させる方法はありますか?
再帰的に とは、繰り返し呼び出し、一連のネストされたロックを作成することを意味する場合LOCK TABLES、答えは「いいえ」です。テーブルを呼び出すLOCK TABLESと、そのスレッドによってそのテーブルに保持されている現在のロックが暗黙的に解放されます。
LOCK TABLES
MySQL LOCK TABLES 構文ドキュメントから:
UNLOCK TABLES現在のセッションで保持されているテーブル ロックを明示的に解放します。LOCK TABLES新しいロックを取得する前に、現在のセッションで保持されているすべてのテーブル ロックを暗黙的に解放します。
UNLOCK TABLES