表结构如下:
假设想要实现当记录存在时account值加1,而记录不存在时插入记录,可以这样来实现:
INSERT INTO A (ID, username, account)
VALUES
(1, 'aa', 0) ON conflict (ID) DO
UPDATE
SET account = A .account + 1;
连续执行两次之后可以看到结果:
第一次记录不存在,所以创建了一条新纪录,并设置account值为0;第二次记录存在,则将account值加1了。
不过在执行上述语句之前要确保on conflict操作的字段必须有unique属性或者其他的约束条件,不然就会出现类似于以下的错误: