PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

CHÈN trong một truy vấn thành 2 bảng postgresql

Điều này có thể được thực hiện bằng cách sử dụng một biểu thức bảng chung sửa đổi dữ liệu:

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

Phần đầu tiên chèn vào orders bảng và trả về ID đã được chèn. Sau đó, phần thứ hai sẽ chèn hàng vào completedby bằng cách sử dụng worker_id đã biết và truy xuất order_id từ bước trước.

Chỉnh sửa

nếu id trong orders bảng là một serial và bạn muốn để trình tự tạo ra giá trị, bạn cũng có thể làm điều đó:

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. Định dạng giá trị chính xác kép trong Postgresql

  2. Vải và Sudo với tư cách là một người dùng khác

  3. Chỉ mục GIN của PostgreSQL chậm hơn GIST cho pg_trgm?

  4. PostgresQL SQL:Chuyển đổi kết quả thành mảng

  5. Các Tuyên bố Chuẩn bị Đã Tồn tại