1

次のエラーが表示される理由を誰かに説明してもらえますか?

次の構文を使用して、mysql テーブルの列「exerciseID」の名前を「ID」に変更したいと考えています。

ALTER TABLE  `exercises` CHANGE  `exerciseID`  `ID` INT( 11 ) NOT NULL AUTO_INCREMENT

ただし、次のエラーが表示されます。

MySQL said: 

#1025 - Error on rename of './balance/#sql-de_110e' to './balance/exercises' (errno: 150)

どんな提案でも大歓迎です

4

3 に答える 3

2

その列への外部キー参照があるかどうかを確認します。その場合、その列に定義した外部関係を削除し、名前を変更してから、新しい列名で外部キー関係を元の場所に戻す必要がある場合があります。

名前を変更すると、FK 関係が無効になり、エラーがスローされるという事実に MySQL がハングアップしていると思います。

編集: MySQLでFKの名前変更を確認

次のようなことをする必要があります。

alter table yourTable drop foreign key yourID
于 2010-05-27T12:23:30.487 に答える
0

多段階のプロセスかもしれないと思います。

  1. 新しい列を追加し、
  2. 元の列からデータをコピーします
  3. 古い列をドロップします
于 2010-05-27T12:23:08.623 に答える
0

Googleで簡単に検索しただけで、外部キーで列を参照しているように見えます-名前の変更を妨げています.

残念ながら、MySQL で外部キーをあまり使用していないため、問題をどのように解決するかわかりません。

于 2010-05-27T12:23:27.937 に答える