PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

INSERT dalam satu kueri ke dalam 2 tabel postgresql

Ini dapat dilakukan dengan menggunakan data yang memodifikasi ekspresi tabel umum:

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)
);

Bagian pertama disisipkan ke dalam orders tabel dan mengembalikan ID yang dimasukkan. Bagian kedua kemudian menyisipkan baris ke dalam completedby tabel menggunakan employee_id yang diketahui dan mengambil order_id dari langkah sebelumnya.

Sunting

jika id kolom di orders tabel adalah serial kolom dan Anda ingin membiarkan urutan menghasilkan nilai, Anda juga dapat melakukannya:

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)
);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memperbarui ResultSets dengan tipe SQL Array di JDBC / PostgreSQL

  2. Cara membuat Pengguna/Database dalam skrip untuk Docker Postgres

  3. datagrip Tidak dapat menerapkan perubahan Tabel ini hanya dapat dibaca. Perubahan editor sel tidak dapat diterapkan

  4. Postgres:hapus seluruh basis data sebelum membuat kembali/mengisi ulang dari skrip bash

  5. Kesalahan Protokol PostgreSQL. Penyiapan sesi gagal.. kesalahan