postgresql - SQL 错误 [42601]:错误:在 Dbeaver PostgreSQL 编辑器中的“选择”处或附近出现语法错误
问题描述
insert into dwb_weekly_snapshot_03032021 (jp_number, ct_id)
select imjp_number, imct_id
from dummy_data_03032021
on conflict (jp_number) do update
set ct_id = select imct_id from dummy_data_03032021 where imjp_number=jp_number;
SQL 错误 [42601]:错误:“选择”位置或附近的语法错误:166
如果 jpnumber=imjp_number ,我将 ct_id 值从 dummy_data_03032021 更新到表 dwb_weekly_snapshot_03032021 中,否则我必须将 jp_number 和 ct_id 值从 dummy_data_03032021 插入表 dwb_weekly_snapshot_03032021 中,保持其他列值不变
要么我也试过这个
UPDATE dwb_weekly_snapshot_03032021 SET dwb_weekly_snapshot_03032021.jp_number=dummy_data_03032021.imjp_number, dwb_weekly_snapshot_03032021.ct_id= dummy_data_03032021.imct_id WHERE dwb_weekly_snapshot_03032021.jp_number=dummy_data_03032021.imjp_number;
INSERT INTO dwb_weekly_snapshot_03032021 (jp_number, ct_id) SELECT imjp_number,imct_id from dummy_data_03032021 WHERE NOT EXISTS (SELECT 1 FROM dummy_data_03032021 WHERE dwb_weekly_snapshot_03032021.jp_number=dummy_data_03032021.imjp_number);
出现错误:SQL 错误 [42P01]:错误:缺少表“dummy_data_03032021”的 FROM 子句条目位置:222
USING EXCLUDED 出现以下错误 SQL 错误 [42P10]:错误:没有与 ON CONFLICT 规范匹配的唯一或排除约束
insert into dwb_weekly_snapshot_03032021 (jp_number, ct_id)
select imjp_number, imct_id
from dummy_data_03032021
on conflict (jp_number) do update set ct_id = EXCLUDED.ct_id
解决方案
推荐阅读
- bash - 转义斜杠和制表符
- c# - Unity 3D:如何存储和替换网格中的预制件?
- c - 如何从“/proc/[pid]/status”文件夹中计算 C 中进程的内存使用量?
- reactjs - 重定向到 https 安全在 react-router 中不起作用
- jenkins - 如何将参数传递到管道脚本但不使其成为詹金斯 UI 中的参数化构建
- python - 嵌套 for 循环的递归替代方案
- swift - Swift SKPhysicsBody 空子类不继承父初始化
- bash - 如果存在单词,如何替换世界,否则使用 sed 在行尾附加一个单词
- python - 归并排序递归版本直觉落后
- wifi - 通过 WiFi 将数据从 ESP32 发送到服务器