Dit kan worden gedaan met behulp van een gemeenschappelijke tabeluitdrukking die gegevens wijzigt:
with new_order as (
insert into orders (id, date) values (1, current_date)
returning id
)
insert into completedby (employee_id, order_id)
values
( 42 -- employee_id,
(select id from new_order)
);
Het eerste deel wordt ingevoegd in de orders
tabel en retourneert de ID die is ingevoegd. Het tweede deel voegt dan de rij in de completedby
tabel met behulp van de bekende employee_id en het ophalen van de order_id uit de vorige stap.
Bewerken
als de id
kolom in de orders
tabel is een serial
kolom en u wilt dat de reeks de waarde genereert, kunt u dat ook doen:
with new_order as (
insert into orders (date) values (current_date)
returning id
)
insert into completedby (employee_id, order_id)
values
( 42 -- employee_id,
(select id from new_order)
);