8

外部キー インデックスの削除に問題があります。常に同じエラーが発生します。

 ALTER TABLE `comments` DROP INDEX `id_user`  

出力する

 1025 - Error on rename of './postuj_cz1/#sql-d834_a0c704' 
 to './postuj_cz1/comments' (errno: 150) 

もうid_user一方のテーブルは単純な主キー インデックスです。

MySQL バージョン 5.0.85 を使用しています

4

4 に答える 4

13

他にも原因があります。たとえば、2 つの個別の外部キー列を含む一意のインデックスがありました。一意のインデックスを削除する前に、問題の外部キーを削除する必要がありました。(もちろん、後で外部キーを追加することもできます。)

于 2011-01-24T08:50:21.573 に答える
6

INNODB:これは、インデックスを削除する前にリレーションを削除するのと同じくらい簡単です。

于 2012-08-28T19:27:59.600 に答える
2

このリンクによると、エラーは主キーフィールドの定義に関連しています。エラーは、外部キー インデックスに関するものではありません。

テーブルの主キーをチェックして、外部キーに UNSIGNED キーワードが含まれていたときに、キーワードCOMMENTSが含まれていないことを確認してください。このキーワードが問題の原因でした - フィールドのタイプに一貫性がありません。UNSIGNEDCOMMENTS.id_user

修正するにはUNSIGNED、テーブルの主キー定義にキーワードを追加しCOMMENTSます。UNSIGNEDまたは、外部キー定義からキーワードを削除します...

于 2009-09-20T16:28:17.087 に答える
2

インデックスは「user」テーブルの外部キー用であるため、最初に次のコマンドを試してください。

SHOW CREATE TABLE my_table

外部キーのインデックスに対応する制約の名前を見つけ、

その後、次のコマンドを試してください。

ALTER TABLE my_table DROP FOREIGN KEY FK_myconstraintcode

警告: 外部キー名で外部キーを削除しようとすると、エラーが発生します。

于 2015-09-23T18:50:11.757 に答える