2012-06-28 91 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