PostgreSQL | 数据库语法-两表关联更新语法

在尝试使用MySQL的语法更新PostgreSQL中的cq_compliance_question表的serial_number字段时遇到错误。经过多次尝试和修改,发现PostgreSQL要求在SET关键字后的列名直接使用,而不能包含表名或别名。最终的正确更新语句为:UPDATE cq_compliance_question AS c1, cq_compliance_question_temp AS c2 SET c1.serial_number = c2.serial_number WHERE c1.id = c2.id。这表明PostgreSQL与MySQL在两表关联更新的语法上存在差异。" 111498614,10295621,Java POI 实现Excel联动下拉框,"['Java', 'Excel处理', 'POI库', '数据验证', '前端框架']
摘要由CSDN通过智能技术生成

PostgreSQL 两表关联更新

问题:我需要对目标表cq_compliance_question的serial_number字段的值进行维护,由于cq_compliance_question数据量太大,所以我创建了临时表cq_compliance_question_temp来辅助操作。所以,我需要通过这两张表关联来完成对目标表字段serial_number值的维护。

我采用MySQL的写法:

UPDATE cq_compliance_question cq,
 cq_compliance_question_temp cqt
SET cq.serial_number = cqt.serial_number_2
WHERE
	cq."id" = cqt."id"

但是此时Navicat是报错的,错误信息:

[SQL]UPDATE cq_compliance_question cq,
 cq_compliance_question_temp cqt
SET cq.serial_number = cqt.serial_number_2
WHERE
	cq."id" = cqt."id"

[Err] ERROR:  syntax error at or near ","
LINE 1: UPDATE cq_compliance_question cq,
                                        ^

说我语法错误,但这种写法在MySQL是ok的。

所以我开始对该写法进行修改。
第一次修改:

UPDATE cq_compliance_question cq
SET cq.serial_number = cqt.serial_numb
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值