MySQL での外部キーの削除
外部キー制約のあるテーブルを変更しようとすると、特定の外部キーの削除を妨げるエラーが発生する場合があります。この問題は、DROP FOREIGN KEY ステートメントで制約名の代わりにインデックス名を使用する場合に発生します。
次の例を考えてみましょう:
CREATE TABLE location ( locationID INT NOT NULL AUTO_INCREMENT PRIMARY KEY ... ) ENGINE = InnoDB; CREATE TABLE assignment ( assignmentID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, locationID INT NOT NULL, FOREIGN KEY locationIDX (locationID) REFERENCES location (locationID) ... ) ENGINE = InnoDB; CREATE TABLE assignmentStuff ( ... assignmentID INT NOT NULL, FOREIGN KEY assignmentIDX (assignmentID) REFERENCES assignment (assignmentID) ) ENGINE = InnoDB;
割り当てテーブルから locationIDX 外部キーを削除するには正しい構文は次のとおりです:
ALTER TABLE assignment DROP FOREIGN KEY locationIDXconstraint;
注: locationIDXconstraint は実際の制約名で置き換える必要があります。
インデックス名ではなく制約名を指定します。 、外部キー制約はエラーが発生することなく正常に削除できます。
以上がMySQL で外部キーをエラーなく削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。