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

PostgreSQL跨Schema依据匹配ID更新表字段的问题求助

PostgreSQL跨Schema更新表字段的正确SQL写法

你的报错原因是没有在UPDATE语句中引入t_sc.t表,PostgreSQL无法识别t_sc.t的来源,因此提示缺少FROM子句条目。

以下是两种可行的正确写法:

方法1:使用FROM子句关联表

这种写法直观高效,适合批量匹配更新:

UPDATE public.p
SET name = t.name
FROM t_sc.t
WHERE p.id = t.id;
  • 明确指定public.p(若当前默认schema为public,可简化为p)
  • 通过FROM引入t_sc.t表,利用WHERE条件按id匹配关联

方法2:使用子查询+EXISTS过滤

如果需要避免t表中无对应id时,p的name被更新为NULL,可以用这种写法:

UPDATE public.p
SET name = (
    SELECT name
    FROM t_sc.t
    WHERE t.id = p.id
)
WHERE EXISTS (
    SELECT 1
    FROM t_sc.t
    WHERE t.id = p.id
);
  • 子查询负责获取对应id的name值
  • WHERE EXISTS确保只更新t表中存在匹配id的行

内容的提问来源于stack exchange,提问作者Misbah Shaukat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:31:06