PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

मैं Postgres में CTE का उपयोग करके एक विदेशी कुंजी के साथ एकाधिक पंक्तियाँ कैसे सम्मिलित करूँ?

आप जो करना चाहते हैं उसकी उचित व्याख्या निम्नलिखित है:

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;

मूल उत्तर है "उपयोग करें returning * और एक join . का उपयोग करें मान प्राप्त करने के लिए। मुझे शीर्षक बदलने की जरूरत है ताकि वे अद्वितीय हों।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. psycopg2 बड़ी क्वेरी के बाद मेमोरी लीक कर रहा है

  2. ऑटो-प्रतिबद्ध मोड में बड़ी वस्तुओं का उपयोग नहीं किया जा सकता है

  3. एस्केप कैरेक्टर के बिना psql आउटपुट स्ट्रिंग्स को पोस्टग्रेज करता है

  4. पोस्टग्रेज नहीं सरणी में

  5. मैं इस बाधा को कैसे परिभाषित कर सकता हूं?