事象
TRUNCATE TABLE テーブル名;
したら以下のMSGが出て怒られる。
Cannot truncate a table referenced in a foreign key constraint ~
原因
削除しようとしたテーブルが外部キーで参照されてる。(親テーブル)のため。
対応
- 一時的に外部キー制約のチェックを解除する
- TRUNCATE TABLE 実施する
- 一時的にチェックを解除した外部キー制約のチェックを元通り有効化する
mysql> set foreign_key_checks = 0;
mysql> truncate table テーブル名;
mysql> set foreign_key_checks = 1;
参考にしたサイト
MySQLで外部キーの制約があるテーブルをtruncateする方法
ありがとうございました!
所感
MySQLはわかりやすくていいですな。
Oracleでのやり方はちょいとだけ複雑。
コメント