生活の跡

個人的な備忘録

phpMyAdmin で DROP TABLEしようとしたら「#1217 -子レコードがあります。外部キー制約違反です」

概要

タイトルの通りですが、phpMyAdmin で DROP TABLEしようとしたら「#1217 -子レコードがあります。外部キー制約違反です」と言われてしまいました。 f:id:ishii-akihiro:20191016153025p:plain

原因

外部参照している子テーブルをDROPする前に、外部参照されている親テーブルをDROPしようとしたため。

解決方法

子テーブルを先にDROPすればよろし。外部参照を含む複数のテーブルを DROP TABLE で削除する場合、消す順番に気をつけましょう。

おわりに

単純な話ですが、はじめに「drop table 外部キー」とかでWeb検索してたら「SET FOREIGN_KEY_CHECKS=0;」にすると無視できるみたいな話が見つかったのですが、そもそも消す順番を変えれば済む話かもと気づいて記事にしました。
書いておかないと私自身がまた忘れて繰り返しそうなので。。