[MySQL][Postgres]外部キーがあるテーブルをTRUNCATEする方法

スポンサーリンク

概要

データベースで外部キーがあるテーブルをTRUNCATEしようとするとエラーとなってしまう。
例えば、MySQLの場合はCannot truncate a table referenced in a foreign key constraintとなり、TRUNCATEすることができない。

解決方法

一時的に外部キー制約を無効化することで、TRUNCATEすることができる。

MySQLの場合

set foreign_key_checks = 0;
truncate table 【テーブル名】;
set foreign_key_checks = 1;

Postgresの場合

truncate table 【テーブル名】 cascade;

コメント