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

Làm cách nào để chèn nhiều hàng bằng khóa ngoại bằng CTE trong Postgres?

Sau đây là giải thích hợp lý về những gì bạn muốn làm:

with i as (
      insert into products (title, description, price)
          values ('Dope product 1', 'Buy diz', 9.99),
                 ('Dope product 2', 'Buy diz', 8.99),
                 ('Dope product 3', 'Buy diz', 7.99)
          returning *
     ) 
insert into product_metadata (product_id, sales_volume, date)
    select i.product_id, v.sales_volume, v.date
    from (values ('Dope product 1', 80, '2017-03-21'),
                 ('Dope product 2', 50, '2017-03-21'), 
                 ('Dope product 3', 70, '2017-03-21')
         ) v(title, sales_volume, date) join
         i
         on i.title = v.title;

Câu trả lời cơ bản là "sử dụng returning * và sử dụng join để nhận các giá trị ". Tôi cần thay đổi các tiêu đề để chúng là duy nhất.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dấu ngoặc kép xuất hiện giá trị arround sau khi chạy bản sao trong postgres 9.2

  2. Xóa các hàng trống

  3. Cách tạo bảng postgresql khi bắt đầu bằng soạn thư docker

  4. Làm thế nào để sử dụng cùng một danh sách hai lần trong mệnh đề WHERE?

  5. Tính toán Khóa chính tiếp theo - có định dạng cụ thể