To lze provést pomocí běžného tabulkového výrazu upravujícího data:
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)
);
První část se vkládá do orders
tabulku a vrátí ID, které bylo vloženo. Druhá část pak vloží řádek do completedby
pomocí známého id_zaměstnance a načtením id_objednávky z předchozího kroku.
Upravit
pokud id
ve sloupci orders
tabulka je serial
a chcete nechat sekvenci generovat hodnotu, můžete to udělat také:
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)
);