0

bigintテーブルのデータ型をからに変更するテーブルを変更する必要がありintます。データベースには合計200のテーブルがありますが、外部キーの制約のため、テーブルを変更できません。

試しSET foreign_key_checks = 0;ましたが、データ型の変更には使用できません。

既存のテーブルに影響を与えずにテーブルを変更する他の方法があるかどうか教えてください。

4

1 に答える 1

1

これはあなたが考えるほど単純ではありません。変更したい列はテーブルの主キーの一部であると思います。

したがって、これらはMySQLで従う必要がある手順です

  • すべての FK をテーブルにドロップします
  • テーブルのデータ型を更新する
  • 変更するテーブルへの FK を持つすべてのテーブルのデータ型を更新します。
  • すべての FK を再作成する

上で述べたこととは別に、mysql を「だまして」PK/FK の一部である列を変更する方法は他にありません。

MySQL では、PK と FK の列がまったく同じデータ型である必要があります。そうしないと、FK を再作成できません。

于 2013-01-18T13:37:59.553 に答える