3

最近、自分のデータベースの 1 つに、"int" 型に置き換えることができる bigint 型のフィールドがいくつかあることに気付きました。問題は、データベースが既にオンラインで使用中であることと、動作中の外部キーがあることです。そのため、オフライン DB のデータ型を変更しようとすると、mysql はそれを許可せず、エラー メッセージ「#1025」が生成されます。 - (...) の名前変更エラー」。

では、外部キーを満足させながらこれらのフィールドを変更するにはどうすればよいでしょうか? (そして既存のDBを一掃しません!)

4

3 に答える 3

0

あなたは試すことができます:

  1. 適切なタイプの新しい列を追加します。
  2. 古い列から新しい列に値をコピーします。
  3. 列の名前を変更します。
  4. 制約を更新します (おそらく 2 つのステップで --DROPCREATE)。
  5. 古い列を削除します。
于 2012-12-18T12:55:20.227 に答える
-1

データを保持している場合、フィールドのサイズを縮小することはできません。それらを展開することしかできません。できることは、すべてのデータをエクスポートし、キーを無効にし、テーブルを空にし、フィールド サイズを変更して、データを再度インポートすることです。

于 2012-01-18T19:19:31.823 に答える