Gri*_*gor 6 sql postgresql sql-insert
WITH upt as (
UPDATE backend."orders" SET "statusId" = 5
WHERE "userId" IN (177962,88265) and "statusId" IN (0,1,2,3,4) RETURNING *
)
INSERT INTO __test_result(orderid) VALUES ((SELECT orderid FROM upt))
Run Code Online (Sandbox Code Playgroud)
需要更新和记录数据,得到这个错误
ERROR: column "orderid" does not exist Hint: There is a column named
"orderid" in table "__test_result", but it cannot be referenced from this part of the query.
Run Code Online (Sandbox Code Playgroud)
如何在表中插入所有“upt”行?它必须看起来
"upt.orderid","jsonb for that orderid"
Run Code Online (Sandbox Code Playgroud)
对于每个订单 jsonb 必须从具有相同 orderid 的“upt”列创建
小智 5
如果要使用 aselect作为插入的源(对于多行),请不要使用该values子句,请直接使用 select: insert into .. select ...。
所以在你的情况下:
WITH upt as (
UPDATE backend."orders"
SET "statusId" = 5
WHERE "userId" IN (177962,88265)
and "statusId" IN (0,1,2,3,4)
RETURNING *
)
INSERT INTO __test_result(orderid)
SELECT orderid
FROM upt;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9910 次 |
| 最近记录: |