Dette kan gøres ved hjælp af et datamodificerende fælles tabeludtryk:
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)
);
Den første del indsættes i orders
tabel og returnerer det ID, der blev indsat. Den anden del indsætter derefter rækken i completedby
tabel ved at bruge det kendte medarbejder-id og hente ordre-id'et fra det forrige trin.
Rediger
hvis id
kolonne i orders
tabel er en serial
kolonne, og du vil lade sekvensen generere den værdi, du kan også gøre det:
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)
);