sql - 如何修复 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;
我尝试将 exclude.fav_num 和 exclude.name 更改为值,但我仍然遇到相同的错误。我正在运行 PostgreSQL 10.6。什么应该是正确的查询?
桌子:
|------|------|---------|
| id | name | fav_num |
|------|------|---------|
| 1 | bob | 1 |
|------|------|---------|
解决方案
它是SET
这样的:
SET fav_num = EXCLUDED.fav_num, name = EXCLUDED.name
注意一且只有一SET
。
推荐阅读
- firebase - 当我在 void main() 中初始化应用程序 firebase 时,它会为 web 引发一个错误,但它可以在 android 上正常工作
- google-kubernetes-engine - Fluentd 传递环境变量
- postgresql - 在函数内部,相同的查询需要 5 倍的时间 - 函数有什么问题?
- android - 我正在尝试使用 recyclerview 在屏幕上打印列表,但适配器部分中的代码不起作用
- http-status-code-404 - 发布我的 github 页面时如何修复错误 404?
- python - 如何使用 jira-python 将子任务从一个父问题移动到另一个问题
- html - 如何使具有插入边框的 div 和 div 子项完美地接触左侧和顶部垂直下降
- php - 文件上传到服务器时链接不起作用
- python - openpyxl - 查找每列单元格的最大长度
- c++ - 嵌套循环是否有替代方法来显示 n 范围内的可能组合?