Esto se puede hacer usando una expresión de tabla común de modificación de datos:
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)
);
La primera parte se inserta en los orders
table y devuelve el ID que se insertó. La segunda parte luego inserta la fila en el completedby
tabla utilizando el employee_id conocido y recuperando el order_id del paso anterior.
Editar
si el id
columna en los orders
la tabla es un serial
columna y desea dejar que la secuencia genere el valor, también puede hacerlo:
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)
);