2012-06-28 55 views
0

的問題是:更新與刪除重複鍵上沒有更新

我有列的表(A,B,C),其中A + B佔一個獨特的密鑰。一些記錄應該被更新(設置在C上)並且一些記錄是新的,表中不存在唯一的A + B鍵。完美的是INSERT ON DUPLICATE KEY UPDATE,但是...未更新的行(在A列的考慮值內 - 所考慮的所有更新的A值都應該被刪除)。問題是做最好的方法是什麼,最好是最短的查詢/存儲過程。我找到了解決辦法,但我正在尋找一個更具針對性的解決方案。

回答

0

我這樣做的方法是有一個todelete標誌。在更新之前在所有行上將其設置爲1,然後在更新期間將更新的行設置爲todelete=0。然後刪除任何行,其中todelete仍然是1.

+0

這是我也考慮過的解決方案,但坦率地說,它打破了邏輯並使事情變得多餘。 – algorytmus

+0

也許你會想到一些SQL語言機制? – algorytmus