Du kan använda CTE:er om du vill ha allt i ett uttalande:
with foo as (
select * from ...
),
b as (
insert into bar
select * from foo
returning *
)
insert into baz
select * from foo;
Anmärkningar:
- Du bör inkludera kolumnlistor med
insert
. - Du bör ange kolumnnamnen explicit för
select *
. Detta är viktigt eftersom kolumnerna kanske inte matchar i de två tabellerna. - Jag använder alltid
returning
medupdate
/insert
/delete
i CTE. Detta är det normala användningsfallet -- så att du till exempel kan få tillbaka seriella ID från en insert.