[MySQL]レコードの削除ができない時の解決方法。

mysql削除できない

[23000][1451] Cannot delete or update a parent row: a foreign key constraint fails
というエラーが出ましたか?

上記のエラーは簡単に説明すると

「そのレコードは他のテーブル(レコード)から参照されているから消すとエラーの原因になるから消せないよ。」

ということらしい。

なので参照元のレコードを削除してから消そうとしているレコードを削除する。

という手順なら削除できるはずです。

Djangoの場合

adminページから削除すると関連レコードも一緒に削除してくれるのでこの問題を難なく解決できます。

ただし、モデルに ForeignKey(***,on_delete=models.CASCADE)と設定している場合です。

その他の設定ではadminページからでも参照元のレコードを削除してから対象のレコードを削除する必要があります。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください