2

索引付けされた列を削除できません。通常はインデックスの削除に問題がないため、何が起こっているのかよくわかりません。列またはインデックスを削除しようとすると、次のエラーが発生します

ERROR 1025 (HY000): Error on rename of './db-name/#sql-135e_9ee6d2' to './db-name/table-name' (errno: 150)

同じ列に新しいインデックスを作成すると、古いインデックスは削除できますが、新しいインデックスは削除できません (インデックスが利用可能かどうかを確認するだけだと思います)。この問題に遭遇したことがありますか?

エンジン: innoDB mysql バージョン: Ver 14.12 Distrib 5.0.45、readline 5.0 を使用する redhat-linux-gnu (x86_64) 用

ご協力ありがとうございます。さらに情報が必要な場合はお知らせください。

4

2 に答える 2

2

そのインデックスには外部キー関係があるため、InnoDBは、一貫性を維持するためにその列を削除しないようにします。その列を参照する外部キーを最初に削除します。

これは、ALTER TABLEが実際に機能するのは、テーブルのコピーを作成し、名前を変更して古いテーブルを邪魔にならない場所に移動し、新しいテーブルをその場所に移動するためです。これは確かに、MySQLで見たあまり意味のないエラーメッセージの1つです。

http://www.xaprb.com/blog/2006/08/22/mysqls-error-1025-explained/

于 2010-10-12T14:02:51.130 に答える
2

外部キー参照エラーです...

次のステートメントで確認して、テーブルを確認できます

エンジンの INNODB ステータスを表示

于 2011-03-14T11:28:40.917 に答える