我正在尝试在Postgresql 9.5.2中编写这样的查询:
INSERT INTO a (id,x) SELECT id,x FROM b ON CONFLICT (id) DO UPDATE SET x = b.x WHERE b.y < 100
但我得到ERROR:缺少表“b”的FROM子句条目.我必须遗漏一些基本的东西,但是如何引用UPDATE子句中插入的行?或者还有其他方式吗?
冲突的值可通过
excluded
别名获得:
INSERT INTO a (id,x) SELECT id,x FROM b ON CONFLICT (id) DO UPDATE SET x = excluded.x;