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

带值列表参数的PostgreSQL UPDATE查询报错,INSERT语句却正常

PostgreSQL UPDATE语句值列表语法错误修正

你遇到的问题是UPDATE语句误用了INSERT的VALUES语法,PostgreSQL的UPDATE不支持这种写法,而INSERT的语法本身就是设计成那样的,所以后者能正常运行。

错误的UPDATE语句:

update user set (username, firstname, lastname) values($1, $2, $3) where id = 3

两种正确的写法:

1. 传统逐个列赋值(最常用)

UPDATE "user" 
SET username = $1, firstname = $2, lastname = $3 
WHERE id = 3;

2. 行构造器语法(贴近你原本的列表形式)

PostgreSQL支持用行构造器一次性给多个列赋值,语法是把列列表和值列表都用括号包裹,中间用等号连接:

UPDATE "user" 
SET (username, firstname, lastname) = ($1, $2, $3) 
WHERE id = 3;

注意点:

user是PostgreSQL的保留关键字,建议用双引号"user"包裹表名,避免语法冲突(虽然某些场景下不报错,但规范写法更稳妥)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:23:20