2015-12-04 45 views
1

我想刪除tableAtableB除去具有匹配tableA.A_ID = tableB.A_ID的MySQL刪除表中關於參照完整性規則

目前,我有一個外鍵設置爲CASCADE上刪除和更新TableBtableB.A_ID設置的所有行。

+0

取決於你要去的方向。看看http://stackoverflow.com/a/2917374/1816093 – Drew

回答

1

將制約暫時關閉的

SET SQL_SAFE_UPDATES = 0; 

DELETE FROM tableB b WHERE EXISTS (SELECT * FROM tableA a WHERE a.A_ID = b.A_ID) 

DELETE FROM tableA; 

SET SQL_SAFE_UPDATES = 1; 
+0

因此,關閉檢查,然後刪除tableB中的行,然後刪除tableA? – RiCHiE

+0

@RiCHiE,我認爲這只是關於約束而已。查看更新,**請在嘗試之前備份您的表格**! – davidkonrad

+0

嗯我仍然在MySQL工作臺中出現錯誤「您正在使用安全模式」,但我也禁用了選項中的安全模式。我需要在shell中執行嗎? – RiCHiE