0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

LaravelでonDelete('cascade')を書けば勝手にリレーション先の子供が削除されるわけではない

Posted at

今回発見があったので備忘録。
usersテーブルに紐づくpostsテーブルがあったとして、マイグレーションファイルには

$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');

こう書けば、勝手に削除されると思ってました。。。
この場合で削除されるのは、親(User)を物理削除した場合のみ。
論理削除だと、削除されないようなのです。

自動で削除してくれるのは、物理削除によって親が完全にDB上から消えた場合であって
論理削除のようにまだデータが残っている場合、DBは親が削除されたとはみなさないようです。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?