1

データベース テーブル (MIGRATIONS) を使用してスキーマで実行された移行を記録するスキーマ移行コードがあります。スキーマへの新しい移行の実行に関しては、コードがテーブルをロックするため、クラスター内の他のインスタンスも移行を実行できず、実行する必要がある移行を確認して実行します。次の SQL を使用して MIGRATIONS テーブルをロックします。

lock tables migration_log write;

移行のいずれかでテーブルが作成されると、次のエラーが発生します。

Table 'tbl_name' was not locked with LOCK TABLES

LOCK TABLES ステートメントを発行すると、そのステートメントで言及されているテーブルのみを処理できると読みました。

要するに、mysql で 1 つのテーブルをロックし、別のテーブルを作成するにはどうすればよいでしょうか?

それができない場合、私が達成しようとしていることを達成するための別のアプローチを提案できますか?

4

1 に答える 1

0

本当にテーブル全体をロックする必要がありますか?たぶん、行ロックだけで十分ですか?

http://lists.mysql.com/cluster/4467

于 2012-12-20T10:08:05.667 に答える