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

Bagaimana cara menyisipkan beberapa baris dengan kunci asing menggunakan CTE di Postgres?

Berikut ini adalah interpretasi yang masuk akal tentang apa yang ingin Anda lakukan:

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;

Jawaban dasarnya adalah "gunakan returning * dan gunakan join untuk mendapatkan nilai". Saya perlu mengubah judulnya agar unik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. perbedaan antara localhost dan postgres untuk Host di buruh pelabuhan

  2. Menggunakan Postgresql dengan Grails :Urutan atau tabel yang hilang:hibernate_sequence

  3. Permintaan PostgreSQL yang sangat lambat dengan klausa ORDER dan LIMIT

  4. Apakah PK referensi Kunci Asing memerlukan batasan NOT NULL?

  5. Cara menggunakan fungsi date_part untuk membagi nilai per bulan ke setiap hari dan negara