说我有以下插入声明:
insert into table_1 (...) values (...), (...), (...);
假设我知道将正确插入这3行(没有违反任何条款),我如何将每个插入行的id
字段提取到一个单独的变量中,以便我在其余部分中使用它.sql
脚本?
我读过关于returning
的内容,可能会转化为:
insert into table_1 (...) values (...), (...), (...) returning id;
我还阅读了with
(公用表表达式),它可以将returning
的结果“保存”到表中,以便以后在insert
语句中使用;
但似乎我必须将id
作为select id from temp_table
关联某种选择器以区分每3行。
有没有办法获取每个插入行的id
以便以后在另一个insert
语句中单独使用它们?
答案 0 :(得分:1)
您可以使用三个CTE:
with i1 as (
insert into table_1 (...) values (...)returning id
),
i2 as (
insert into table_1 (...) values (...) returning id
),
i3 as (
insert into table_1 (...) values (...) returning id
)
insert . . .;
这并不是将值放入三个变量中。它确实将它们放在三个独立的CTE中,因此每个CTE都可以单独引用。