无法删除或更新父行,外键约束失败

时间:2018-01-10 01:46:05

标签: php sql database

执行此DELETE代码时:

$update = "DELETE from  `products`  WHERE `product_code` = $id; ";
$updateResult = mysqli_query($link, $update) OR DIE("Update Query Error ".mysqli_error($link)."Query [".$update ."]");

它说错误:

更新查询错误无法删除或更新父行:外键约束失败(gibson_dbtrans,CONSTRAINT prod_trans_fk FOREIGN KEY(product_code)REFERENCES {{ 1}}(products))查询[从product_code删除WHERE products = 1; ]

以下是我的相关表:

product_code

1 个答案:

答案 0 :(得分:3)

您的产品表与某些其他表的关系可能是 trans 且约束为prod_trans_fk通常,当您尝试删除父记录以避免孤立数据时,innodb会抛出错误。以下是一些替代方案

  1. 删除子记录第1期
  2. 使用级联删除父项时删除所有子记录。(可能很危险,例如:删除产品时可能会丢失所有交易)
  3. 使用软删除(将is_deleted设置为Yes或No)(强烈推荐)