MySQL TRUNCATE しようとしたら、外部キーのせいで失敗

MySQL
スポンサーリンク

 

事象

TRUNCATE TABLE テーブル名;

したら以下のMSGが出て怒られる。

Cannot truncate a table referenced in a foreign key constraint ~

 

原因

削除しようとしたテーブルが外部キーで参照されてる。(親テーブル)のため。

 

対応

  1. 一時的に外部キー制約のチェックを解除する
  2. TRUNCATE TABLE 実施する
  3. 一時的にチェックを解除した外部キー制約のチェックを元通り有効化する
mysql> set foreign_key_checks = 0;
mysql> truncate table テーブル名;
mysql> set foreign_key_checks = 1;

 

参考にしたサイト

MySQLで外部キーの制約があるテーブルをtruncateする方法

ありがとうございました!

 

所感

MySQLはわかりやすくていいですな。

Oracleでのやり方はちょいとだけ複雑。

 

 

 

 

 

 

 

 

 

コメント