You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL整列更新报错求助:从另一列取值更新整列

PostgreSQL整列更新报错修复方案

错误原因

你执行的SQL报错是因为:

  • PostgreSQL的UPDATE语法中,SET子句不能使用目标表的别名(比如你的t),直接写列名即可。
  • 语句中在FROM里重复关联了目标表dm_turnover_tmp_sales,属于冗余逻辑,还可能引发重复更新问题。

正确SQL写法

写法一:简化关联(推荐)

直接通过FROM子句关联两张表,用WHERE匹配关联条件:

UPDATE turnoverrate_tm.dm_turnover_tmp_sales t
SET dmitm = w.dmitm
FROM turnoverrate_tm.w2nx3l04i w
WHERE w.dmitm = t.sditm;

写法二:子查询方式(适合需严格过滤匹配行的场景)

用子查询确保仅更新有匹配数据的行,避免无匹配行被设为NULL:

UPDATE turnoverrate_tm.dm_turnover_tmp_sales
SET dmitm = (
    SELECT w.dmitm
    FROM turnoverrate_tm.w2nx3l04i w
    WHERE w.dmitm = sditm
)
WHERE EXISTS (
    SELECT 1
    FROM turnoverrate_tm.w2nx3l04i w
    WHERE w.dmitm = sditm
);

内容的提问来源于stack exchange,提问作者Arpan Ghimire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:10:28