postgresql - 插入,冲突时更新,为什么失败?postgresql, pgadmin
问题描述
我正在尝试将一个新表插入到一个大旧表中以更新多行,这是我的查询:
INSERT INTO site_settings (set_id, set_sit_id,set_setting_name,set_setting_type)
SELECT set_id, set_sit_id, replace(TempTable2.stp_device_pool_filter, '${siteShortName}', TempTable2.sit_short_name), set_setting_type from TempTable2 where set_setting_type='DEVICE_POOL'
ON CONFLICT (set_id) DO UPDATE
SET set_sit_id=excluded.set_sit_id,
set_setting_name=excluded.set_setting_name,
set_setting_type=excluded.set_setting_type;
它返回给我的信息:
重复键值违反唯一约束“unique_site_setting”
详细信息:键(set_sit_id、set_setting_name、set_setting_type)=(13、SBA123-rr、DEVICE_POOL)已存在。
但是,我曾经使用类似的查询来更新更复杂的表,但它确实有效。
不知道是什么问题
解决方案
推荐阅读
- javascript - 将 Node.js 12 更新到 14 后,云无法运行我的 Vue CLI 应用程序
- c# - 使用 windows 服务访问服务器上的数据库
- c# - 如何解决错误 CS0433:类型“type”同时存在于“Microsoft.UI.Xaml,...”和“Microsoft.UI...”中
- python - 如何将图像添加到 html 电子邮件背景?
- android - 如何在没有任何此类问题的情况下运行本机应用程序?
- .net - 在本地的不同端口上运行 Azure Functions V3 (.NET 5)
- javascript - 无法生成和显示随机生成的整数
- javascript - 使用条件在 d3 javascript 中设置文本字段
- javascript - 单击按钮时从 API 获取随机数据 - React
- reactjs - 如何阻止 useSelector 多次调用