Laravel CRUD删除不能处理外键

时间:2017-03-30 16:27:21

标签: php mysql laravel laravel-5.2

我在数据库中有category_id列的外来关系,但在删除时我得到错误。 这是我的删除代码:

 WITH cte
 AS
 (
 SELECT user, date, ROW_NUMBER () OVER (PARTITION BY user ORDER BY date DESC) row
 FROM users
 )

 SELECT user, date
 FROM cte
 WHERE row <= 4

我看到的错误是:

DENSE_RANK () OVER (PARTITION BY user ORDER BY date DESC) row

请帮忙。

1 个答案:

答案 0 :(得分:2)

我的赌注是将外键设置为ON DELETE RESTRICT而不是CASCADE。

  

无法删除或更新父行:外键约束失败(fitiliciousproducts,CONSTRAINT products_category_id_foreign FOREIGN KEY(category_id)参考categoriesid))(SQL:从categories删除id = 2)

这告诉我们表格中有一行&#34;产品&#34;它引用了您尝试删除的类别。

  • ON DELETE CASCADE也会删除该产品。
  • ON DELETE RESTRICT将阻止删除非空类别
  • ON DELETE SET NULL将删除类别并在产品表
  • 中将category_id设置为NULL

每个都有它的用途,但你需要选择你需要的那个。