2011-10-04 21 views
5

MySQLでInnoDBを使用し、未使用の外部キーを削除する際の問題。外部キーは別のテーブルのIDを参照します。しかし、私はこのフィールドは必要ありません。MySQLドロップフィールド。外部キーerrorno 150

私はfkインデックスを削除しようとしましたが、これはうまくいきません - それは外部キー制約で必要とされています。

テーブル: - './axis/Schedule」から' ./axis/#sql-ad8_1531' の名前変更のエラー(150エラー番号)

1025:そして、私にエラーを与えるフィールドを除去現在空です。このフィールドを参照するテーブルはありません。どのようにこれを取り除くための任意のアイデア?新しいテーブルを作成する以外は?

私が正しく以下のエラーを読んでいる場合、fkインデックスが宣言されているため、カラムを削除できません。列が存在するため、インデックスを削除できません。チキン&卵?

LATEST FOREIGN KEY ERROR 111004テーブル軸/スケジュールの外部キー制約で夜05時05分40秒のエラー: 最初の列と列、またはデータ型でを含んでいるでしょうテーブル内のインデックスがない テーブルが参照テーブル のテーブルと一致しないか、ON ... SET NULLカラムの1つがNOT NULLと宣言されています。コンストレイント "fk_Schedule_Grp" FOREIGN KEY( "idGrp")参照 "Grp"( "idGrp")NOアクションでアクションを削除しないでください InnoDB:テーブルaxisの名前を変更しています。 〜axisScheduleが失敗しました。あなたがここ

ALTER TABLE table_name DROP FOREIGN KEY constraint_name 

constraint_nameを使用する必要が

答えて

14

は、制約の名前ではなくインデックスです。これが何であるかわからない場合は、SHOW CREATE TABLEを発行して調べることができます。これは、単語CONSTRAINTの後に現れる識別子です。

編集:質問へのご添加してから、それはあなたが

ALTER TABLE table_name DROP FOREIGN KEY fk_Schedule_Grp 
+0

を発行する必要があるようにあなたは素晴らしいですに見えますが、私は私が制約とインデックスを混乱されたと考えています。これは3つすべてを取り除く魅力のように働いた。ありがとう! –

関連する問題