【发布时间】:2020-10-08 16:54:34
【问题描述】:
想象一下这样的表格:
+-----+-------+
| id | value |
+-----+-------+
| id1 | val1 |
| id2 | val2 |
+-----+-------+
而id 是PRIMARY KEY 并且value 具有UNIQUE 约束。
我想要做的是使用基于其主键插入或更新条目的查询但是如果违反唯一约束则失败。
例如,如果我尝试插入 id1, val2,我希望查询失败,而插入 id1, val3 应该更新第一行。
然而,我在 sqlite3 中观察到的是,如果我使用 INSERT OR REPLACE 插入 id1, val2,它将替换 both 现有条目。我还查看了 sqlite 的 ON CONFLICT 子句,但似乎没有办法区分 UNIQUE 或 PRIMARY KEY 约束违规。
有没有办法用 sqlite 做这样的事情,或者有没有另一种方法来处理这样的情况?
【问题讨论】:
标签: sqlite