如何从引用另一个表的表中删除所有行?

时间:2016-10-05 10:41:19

标签: mysql

DELETE FROM hk_qa.shipping_order_lifecycle
WHERE create_dt < DATE_SUB(NOW(), INTERVAL 4 MONTH)

但它显示错误

  

无法删除或更新父行:外键约束失败   (hk_qalifecycle_reason,CONSTRAINT   fk_lifecycle_reason_shipping_order_lifecycle1外国钥匙   (shipping_order_lifecycle_id)参考shipping_order_lifecycle   (id)ON DELETE NO ACT)

1 个答案:

答案 0 :(得分:1)

如果你有引用shipping_order_lifecycle表中给定记录的子记录,那么你需要首先删除子记录,或者使用ON DELETE CASCADE来代替{更改外键约束以级联删除{1}}。

我不建议删除约束并执行删除操作,因为这会导致子表中的孤立记录,而您不希望这样做。