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
insert
einfü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
returning
mitupdate
/insert
/delete
in CTEs. Dies ist der normale Anwendungsfall – so können Sie beispielsweise Seriennummern von einer Beilage zurückerhalten.