U kunt CTE's gebruiken, als u dit allemaal in één verklaring wilt:
with foo as (
select * from ...
),
b as (
insert into bar
select * from foo
returning *
)
insert into baz
select * from foo;
Opmerkingen:
- U moet kolomlijsten opnemen met
insert
. - U moet de kolomnamen expliciet specificeren voor de
select *
. Dit is belangrijk omdat de kolommen in de twee tabellen mogelijk niet overeenkomen. - Ik gebruik altijd
returning
metupdate
/insert
/delete
in CTE's. Dit is het normale gebruik -- dus u kunt bijvoorbeeld serie-ID's terughalen uit een insert.