gpt4 book ai didi

sql - 使用 WITH 绑定(bind)的值插入数据

转载 作者:行者123 更新时间:2023-11-29 12:37:25 25 4
gpt4 key购买 nike

我正在尝试使用从另一个INSERT 获得的自动增量值来INSERT 一些行。

WITH id AS (
INSERT INTO myTable
(mt_name, mt_description)
VALUES ('Name', 'Description')
RETURNING id
)
INSERT INTO anotherTable
(at_id, at_foo, at_bar)
VALUES (id, 'PLT', 50682),
(id, 'PLT', 54482),
(id, 'PLT', 52570),
(id, 'PLT', 9192);

我期望的是 INSERT 一堆行,其中 at_id 列具有第一个 INSERT 返回的值.但是当我运行它时,我得到:

psql:file.txt:100: ERROR:  column "id" does not exist
LINE 9: VALUES (id, 'PLT', 50682),

这样可以插入返回值吗?如果是这样,我必须进行哪些更改才能使其正常工作?

我正在使用 Postgres 9.3.5。客户端和服务器版本相同。

最佳答案

试试这个:

WITH id AS (
INSERT INTO myTable
(mt_name, mt_description)
VALUES ('Name', 'Description')
RETURNING id
)
INSERT INTO anotherTable(at_id, at_foo, at_bar)
SELECT id.id, 'PLT', val.v
FROM (VALUES (50682),(54482),(52570),(9192)) val(v)
CROSS JOIN id;

关于sql - 使用 WITH 绑定(bind)的值插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26600816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com