Dies kann mit einem allgemeinen Tabellenausdruck zur Datenänderung erfolgen:
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)
);
Der erste Teil wird in die orders
eingefügt Tabelle und gibt die eingefügte ID zurück. Der zweite Teil fügt dann die Zeile in completedby
ein Tabelle mit der bekannten employee_id und Abrufen der order_id aus dem vorherigen Schritt.
Bearbeiten
wenn die id
Spalte in den orders
Tabelle ist eine serial
-Spalte und Sie möchten, dass die Sequenz den Wert generiert, können Sie das auch tun:
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)
);