Anda dapat menggunakan CTE, jika Anda menginginkan ini semua dalam satu pernyataan:
with foo as (
select * from ...
),
b as (
insert into bar
select * from foo
returning *
)
insert into baz
select * from foo;
Catatan:
- Anda harus menyertakan daftar kolom dengan
insert
. - Anda harus menentukan nama kolom secara eksplisit untuk
select *
. Ini penting karena kolom mungkin tidak cocok di kedua tabel. - Saya selalu menggunakan
returning
denganupdate
/insert
/delete
di CTE. Ini adalah kasus penggunaan normal -- misalnya, Anda bisa mendapatkan id serial dari sisipan.