我试图从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 - 无法删除或更新父行:外键约束失败(databasename
。user_subscription_log
,CONSTRAINT foreirgn_key_user_id
FOREIGN KEY(user_id
)REFERENCES {{ 1}}(tbl_user
))
答案 0 :(得分:2)
它失败了,因为user_subscription_log
表中存在子记录,而删除'子句在外键中设置。
我执行了两个删除查询:
DELETE FROM user_subscription_log WHERE user_id = ?;
DELETE FROM tbl_user where id = ?;
另一种选择是设置删除级联'外键定义中的子句,如here所述。