2016-07-24 47 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