0

名前の変更が必要なテーブルがありますが、このテーブルへの参照が多数あります。次のクエリを実行すると

information_schema を使用します。SELECT * FROM KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'TABLE_NAME' および CONSTRAINT_SCHEMA = 'TEST_SCHEMA'

50以上の結果があります。これらを一度に更新する方法はありますか、それとも参照ごとに変更スクリプトを作成する必要がありますか? 私はmysqlを使用しており、テーブルはinnodbです。db deploy を介して実行できる必要があるため、管理者ログインを使用できません (KEY_COLUMN_USAGE を更新しようとすると失敗します)。

ありがとう!

4

2 に答える 2

0

変更が行われていない間、チームの他のメンバーの休止状態の参照を保持するために、古いテーブルのように新しいテーブルを作成することから始めました。その後、外部キーによってテストが失敗したとき、それは私がやりたいことになるだろうと思いました。手動で行う必要があります。alter tableコマンドは、これを適切に更新し、すべてが順調です。

于 2012-07-10T17:24:34.793 に答える
0

FK を更新するには、PK が存在する必要があります。これは交渉可能ではありません。

  • FK を削除して再作成できます。
  • または、auto_commit=0;すべてのクエリ (最初に PK、次に FK) を設定してコミットすることもできます。

ここを見てください

于 2012-07-10T16:29:37.767 に答える