外部キーを貼っておくと、当然、削除などを行うときにエラーになり、truncateも当然できなくなりますが、cascadeをつけることで、関連するテーブルまで一気にtruncateされます。
1 |
truncate table users cascade; |
主にテストなんかをやっていて、テーブルを初期化したい時に便利。
外部キーネタで他には以下の点なども注意。
- ちなみに外部キー制約には単なるキー制約以外に、制約(共に削除など)を色々とつけることができる
- 親と子の型が一致していないと外部キー制約がうまく働かないので要注意。
- Laravelだと削除時に物理削除ではなく、deleted_atに値を入れるなどの機能もあり。