2016-07-24 62 views
0

我试图删除tbl_user和user_subscription_log多行单行,我的连接查询删除记录是:Mysql数据库错误 - 通过连接查询

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,约束foreirgn_key_user_id外键(user_id)参考文献tbl_userid))

回答

2

由于user_subscription_log表中存在子记录,因此没有在外键中设置'on delete'子句,因此失败。

我会执行两个删除查询:

DELETE FROM user_subscription_log WHERE user_id = ?; 

DELETE FROM tbl_user where id = ?; 

另一种选择是 'ON DELETE CASCADE' 外键定义条款中,作为解释here

+0

我会'另一种选择' – Strawberry