これは、共通テーブル式を変更するデータを使用して実行できます。
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)
);
最初の部分はorders
に挿入されます テーブルに挿入されたIDを返します。次に、2番目の部分は、行をcompletedby
に挿入します。 既知のemployee_idを使用し、前のステップからorder_idを取得するテーブル。
編集
id
の場合 orders
の列 テーブルはserial
です 列であり、シーケンスに値を生成させたい場合は、それも実行できます:
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)
);