Isso pode ser feito usando uma expressão de tabela comum de modificação de dados:
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)
);
A primeira parte é inserida nos
orders
tabela e retorna o ID que foi inserido. A segunda parte insere a linha no completedby
table usando o employee_id conhecido e recuperando o order_id da etapa anterior. Editar
se o
id
coluna nos orders
tabela é uma serial
coluna e você deseja deixar a sequência gerar o valor, você também pode fazer isso: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)
);