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

从SQL Server迁移至PostgreSQL如何编写带左连接空条件的UPDATE查询

PostgreSQL 对应UPDATE语句实现方案

你提供的SQL Server UPDATE语句核心逻辑是更新table1中与table2无匹配关联的记录的col1字段为xx,PostgreSQL有两种常用的正确写法:

写法1:和原有SQL写法差异最小(支持FROM子句)

PostgreSQL原生支持UPDATE语句带FROM子句,不需要做大的调整,注意不要重复声明待更新的表即可:

UPDATE table1 t1
SET col1 = 'xx'
FROM table2 t2
WHERE t1.id = t2.id (+)
  AND t2.id IS NULL;

写法2:NOT EXISTS 写法(更推荐)

该写法语义更清晰,数据库优化器也更容易生成最优执行计划,执行效率通常更高:

UPDATE table1 t1
SET col1 = 'xx'
WHERE NOT EXISTS (
    SELECT 1 
    FROM table2 t2 
    WHERE t1.id = t2.id
);

两种写法的执行效果和你原SQL Server语句完全一致,可根据自己的使用习惯选择。


内容的提问来源于stack exchange,提问作者John Sari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:54:01