すべてのテーブルをロックする必要があります 、LOCK
まで使用したい 解放されます。 completely_different_table_2
を指定できます READ LOCK
のみ 、これにより、他のプロセスがロックされている間にこのテーブルを読み取ることができます:
LOCK TABLES table_1 WRITE, completely_different_table_2 READ;
PS:MySQLにはそうする理由があります。 LOCK
をリクエストした場合 、データの一貫した状態を凍結したい。 completely_different_table_2
からデータを読み取る場合 LOCK
の内部 、table_1
に書き込まれたデータ 何らかの形でこの他のテーブルに依存します。したがって、LOCK
の間に誰にもこのテーブルを変更させたくないでしょう。 READ LOCK
をリクエストします この2番目のテーブルについても同様です。データがtable_1
に書き込まれた場合 他のテーブルに依存しません。LOCK
までクエリを実行しないでください。 がリリースされました。