1. ホーム
  2. mysql

[解決済み] mysql エラー 1025 (HY000) とは何ですか。Error on rename of './foo' (errorno: 150) mean?

2022-04-25 06:25:35

質問

mysqlで試してみました。

mysql> alter table region drop column country_id;

そして、こうなった。

ERROR 1025 (HY000): Error on rename of './product/#sql-14ae_81' to
'./product/region' (errno: 150)

何かアイデアはありますか?外部キーのこと?

どのように解決するのですか?

通常、テーブルが InnoDB エンジンを使用している場合、このエラーが発生します。その場合、外部キーを削除し、テーブルを変更してカラムを削除する必要があります。

しかし、厄介なのは、カラム名を使って外部キーを削除することはできず、代わりにインデックスに使用されている名前を見つける必要があることです。それを見つけるには、次のようなselectを実行します。

SHOW CREATE TABLE region;

このように、インデックスの名前が表示されるはずです。

コンストレイント region_ibfk_1 FOREIGN KEY ( country_id ) 参照先 country ( id ) オンデリートなし アクションオンアップデートアクションなし

では、単純にissue an:

alter table region drop foreign key region_ibfk_1 ;

そして、最後にアン。

alter table region drop column country_idです。

そして、これでOK!