更新子查询中的多列

问题描述 投票:1回答:2
UPDATE PINPOINT_SUPPLEMENT
            SET (ATTACHMENT_VALUE,ATTACHMENT_TYPE) = (
            SELECT key,'file'
            FROM PINPOINT_DOCUMENT
            WHERE PINPOINT_SUPPLEMENT.ATTACHMENT_VALUE::integer = PINPOINT_DOCUMENT.DOCUMENT_ID
            )
WHERE ATTACHMENT_VALUE IS NULL

执行此查询时出现错误

错误:“ SELECT”或附近的语法错误第3行:SELECT键,“文件”>

更新PINPOINT_SUPPLEMENT设置(ATTACHMENT_VALUE,ATTACHMENT_TYPE)=(SELECT键,'文件'来自PINPOINT_DOCUMENT,在PINPOINT_SUPPLEMENT ....

sql postgresql postgresql-9.4
2个回答
3
投票
update PINPOINT_SUPPLEMENT set ATTACHMENT_VALUE = PINPOINT_DOCUMENT.key, ATTACHMENT_TYPE = 'file' from PINPOINT_DOCUMENT where PINPOINT_SUPPLEMENT.ATTACHMENT_VALUE::integer = PINPOINT_DOCUMENT.DOCUMENT_ID and PINPOINT_SUPPLEMENT.ATTACHMENT_VALUE IS NULL

1
投票
Postgres 9.5中引入了对更新元组的支持,因此您不能在版本中使用该语法。
© www.soinside.com 2019 - 2024. All rights reserved.