use*_*4ce 12 postgresql upsert postgresql-9.5
我正在尝试在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
Run Code Online (Sandbox Code Playgroud)
但我明白了ERROR: missing FROM-clause entry for table "b"
.我必须遗漏一些基本的东西,但是如何引用UPDATE子句中插入的行?或者还有其他方式吗?
a_h*_*ame 21
可以通过excluded
别名获得冲突的值:
INSERT INTO a (id, x)
SELECT id, x
FROM b
ON CONFLICT (id) DO UPDATE
SET x = excluded.x;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4108 次 |
最近记录: |