Sie können CTEs verwenden, wenn Sie dies alles in einer Anweisung möchten:
with foo as (
select * from ...
),
b as (
insert into bar
select * from foo
returning *
)
insert into baz
select * from foo;
Hinweise:
- Sie sollten Spaltenlisten mit
inserteinfügen . - Sie sollten die Spaltennamen explizit angeben für den
select *. Dies ist wichtig, da die Spalten in den beiden Tabellen möglicherweise nicht übereinstimmen. - Ich benutze immer
returningmitupdate/insert/deletein CTEs. Dies ist der normale Anwendungsfall – so können Sie beispielsweise Seriennummern von einer Beilage zurückerhalten.