Mysql数据库错误 - 通过连接查询删除记录

时间:2016-07-24 22:01:32

标签: mysql

我试图从tbl_user中删除一行,从user_subscription_log中删除多行,我的连接查询是:

DELETE tbl_user, user_subscription_log
FROM tbl_user 
INNER JOIN user_subscription_log ON tbl_user.id = user_subscription_log.user_id
WHERE tbl_user.id='256'

返回的错误是:

#1451 - 无法删除或更新父行:外键约束失败(databasenameuser_subscription_log,CONSTRAINT foreirgn_key_user_id FOREIGN KEY(user_id)REFERENCES {{ 1}}(tbl_user))

1 个答案:

答案 0 :(得分:2)

它失败了,因为user_subscription_log表中存在子记录,而删除'子句在外键中设置。

我执行了两个删除查询:

DELETE FROM user_subscription_log WHERE user_id = ?;

DELETE FROM tbl_user where id = ?;

另一种选择是设置删除级联'外键定义中的子句,如here所述。