一个表有两个字段 id 和 count , 其中 id 是主键。我要插入数据,如果 id 不存在则插入,如果 id 存在则 count 加一。
PG 里可以用 DO UPDATE SET 来实现:
INSERT INTO table1 (id, count) VALUES (1,1) ON CONFLICT (id) DO UPDATE SET count = count + 1
但是报错:ERROR: column reference "count" is ambiguous
使用 count = EXCLUED.count + 1 逻辑又不对,官方对 EXCLUED 的解释是:
Note that the special excluded table is used to reference values originally proposed for insertion
那应该怎么写呢??求救!
<p>INSERT INTO table1 (id, count) VALUES (1,1) ON CONFLICT (id) DO UPDATE SET count = <strong>table1.</strong>count + 1</p>
<p>改成 </p>
INSERT INTO table1 (id, count) VALUES (1,1) ON CONFLICT (id) DO UPDATE SET count = table1.count + 1
就可以了,哈哈
PostgreSQL on duplicate update https://my.oschina.net/beetlerx/blog/1554475
谢谢:)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。