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

PostgreSQL更新库存MERGE查询报错:syntax error at or near "MERGE"

问题原因及解决方法

报错原因

你的报错是因为使用的PostgreSQL版本低于11——PostgreSQL直到11版本才正式支持MERGE语法,低版本数据库无法识别这个关键字,因此抛出语法错误。

修复方案

方案1:升级PostgreSQL版本(推荐,若允许)

如果能将数据库升级到11及以上版本,你原本写的MERGE语句语法是正确的,可以直接执行。执行前注意确认两张表的product_id字段类型一致,避免因类型不匹配导致的隐式转换问题。

方案2:使用低版本支持的UPDATE JOIN语法

如果无法升级版本,用PostgreSQL原生支持的UPDATE ... FROM语法实现相同的更新逻辑:

UPDATE main_table MT
SET product_stock = UT.product_stock
FROM update_table UT
WHERE MT.product_id = UT.product_id;

这条语句会匹配两张表中product_id相同的记录,将main_table的product_stock更新为update_table中的对应值,和你原本MERGE语句的WHEN MATCHED分支效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:15:49