Workbenchで外部キー制約を無視してデータ削除(truncate)

スポンサーリンク

外部キーを無視してテーブルのデータを削除

ローカルのmysql等で、とにかくなんでもいいからテーブルのデータを削除したい時があります。

通常、foreign key(外部キー)で参照されているテーブルはそのままtruncateしようとすると

Cannot truncate a table referenced in a foreign key constraint

とか言うようにエラーが出てデータ削除できません。

この場合は、

SET FOREIGN_KEY_CHECKS=0;
TRUNCATE `db_name`.`table_name`;
SET FOREIGN_KEY_CHECKS=1;

上のようなSQLを実行してやれば強制的に削除できます。

内容としてはSET FOREIGN_KEY_CHECKS=0で外部キー制約を無視してTRUNCATEを実行し、SET FOREIGN_KEY_CHECKS=1で外部キー制約を有効に戻しています。

ただ、外部キー制約をまったく無視して削除するのでその辺りは理解した上で実行をお願いします。これでDBが崩壊しても責任は取れませんので悪しからず。

未経験、異業種からIT業界に転身。フロントエンジニア。主にJavascript(React.js)をつかったWEBアプリ開発にたずさわる。
お問い合わせ、ご相談など → genpsp10@gmail.com

psp7をフォロー
プログラミング
スポンサーリンク
psp7をフォロー
ハトらぼ

コメント