在sqlite中有一个用于插入和更新的ON CONFLICT
子句,如果插入或更新导致键冲突,它允许您执行某些操作:http://www.sqlite.org/lang_conflict.html
我想知道是否有可能(也许带有触发器)来模拟UPDATE ON CONFLICT DELETE
子句,这与UPDATE ON CONFLICT REPLACE
相反(有点)。基本上,如果更新行X
与预先存在的行Y
产生冲突,我想删除行X
(因为它未更新的形式是一个错误)。REPLACE
关键字似乎删除了所有Y
,然后添加了X
。我需要保留Y
行的其他列(不冲突),而不是新的X
行,所以我无法使用REPLACE
.
没有内置的 ON CONFLICT 子句来实现此算法。
您必须在代码中实现重复检查和删除/更新。