DBAtlas · データベース運用アトラス

3730: Cannot drop table referenced by a foreign key constraint(外部キー制約で参照されているテーブルは削除できない)

MySQL

意味

別のテーブルの外部キーが参照しているため、テーブルを削除できない。参照が存在する限り DROP は阻止される。

原因

FK で紐付いた子テーブルがまだ存在する状態で親テーブルを削除しようとした、依存関係の順序を守っていない、先に外部キーを削除していない。

対処方法

先に参照している外部キーを削除する: ALTER TABLE child_table DROP FOREIGN KEY fk_name; その後テーブルを削除する。依存するテーブル/制約を特定する: SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'my_table'; 一括操作では SET FOREIGN_KEY_CHECKS = 0; を一時的に使えるが、注意して使い、終了後に 1 に戻す。

DBAtlas で開く →

同じデータベースの他の項目