如何修复 postgresql UPSERT 中的语法错误?
How to fix syntax error in postgresql UPSERT?
我正在尝试学习 postgresql 的 upsert 语法,但我一直收到此错误:
ERROR: syntax error at or near "name"
LINE 5: SET name = EXCLUDED.name;
这是 sql 声明:
INSERT INTO users (name, fav_num)
VALUES ('bob', 2)
ON CONFLICT (id) DO UPDATE
SET fav_num = EXCLUDED.fav_num,
SET name = EXCLUDED.name;
我尝试将 excluded.fav_num 和 excluded.name 更改为值,但我仍然遇到相同的错误。我是 运行 PostgreSQL 10.6。正确的查询应该是什么?
Table:
|------|------|---------|
| id | name | fav_num |
|------|------|---------|
| 1 | bob | 1 |
|------|------|---------|
它是 SET
,如:
SET fav_num = EXCLUDED.fav_num, name = EXCLUDED.name
注意一个而且只有一个SET
。
我正在尝试学习 postgresql 的 upsert 语法,但我一直收到此错误:
ERROR: syntax error at or near "name"
LINE 5: SET name = EXCLUDED.name;
这是 sql 声明:
INSERT INTO users (name, fav_num)
VALUES ('bob', 2)
ON CONFLICT (id) DO UPDATE
SET fav_num = EXCLUDED.fav_num,
SET name = EXCLUDED.name;
我尝试将 excluded.fav_num 和 excluded.name 更改为值,但我仍然遇到相同的错误。我是 运行 PostgreSQL 10.6。正确的查询应该是什么?
Table:
|------|------|---------|
| id | name | fav_num |
|------|------|---------|
| 1 | bob | 1 |
|------|------|---------|
它是 SET
,如:
SET fav_num = EXCLUDED.fav_num, name = EXCLUDED.name
注意一个而且只有一个SET
。