postgresql - 插入冲突时增加字段数
问题描述
我有下表
“电话号码信息”
id uuid
country character
phone_number text
page_views bigint
我有以下查询,它应该在表中插入一行,如果它已经存在,则增加 page_views 计数
INSERT INTO phone_number_info (country, phone_number) VALUES('us', '1234567890')
ON CONFLICT (country, phone_number)
DO UPDATE SET phone_number_info.page_views = (phone_number_info.page_views + 1);
执行上面的查询时,我收到以下消息
Error in query: ERROR: column "phone_number_info" of relation "phone_number_info" does not exist
LINE 3: DO UPDATE SET phone_number_info.page_views = (phone_number_i...
查询有什么问题?
解决方案
子句中的列标识符SET
不能不使用表名进行限定——它们总是引用更新的表。所以使用
INSERT INTO phone_number_info (country, phone_number) VALUES('us', '1234567890')
ON CONFLICT (country, phone_number)
DO UPDATE SET page_views = (phone_number_info.page_views + 1);
^^^^^^^^^^^^^^^^
推荐阅读
- sf - 迭代R中多边形内点相交的过程
- python - 如何为 SymPy 自定义函数指定导数?
- reporting - Moqui 框架是否内置了对 Jasper、Birt、Pentaho 等报告工具的支持
- python - 计算主对角线元素和的python函数的时间和空间复杂度
- javascript - 是否有一种实用程序类型可以将元组类型中的所有元素转换为接受 TypeScript 中的“未定义”?
- reactjs - withRouter() HOC 和何时使用 useHistory() 钩子有什么区别?
- javascript - ReadyAPI 是否允许 JavaScript 选项运行外部程序?
- reactjs - React Query 似乎没有缓存
- python - 如何让我的精灵检测碰撞?
- javascript - 变量在函数之外变得未定义