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

अन्य तालिकाओं से तालिका की विदेशी कुंजियों को कैसे पॉप्युलेट करें

इसे सरल बनाया जा सकता है:

INSERT INTO translation (id, translated, language_id, template_id)
SELECT tmp.id, tmp.translated, l.id, t.id
FROM   tmp_table tmp
JOIN   language l USING (langname)
JOIN   template t USING (tplname, source, domain)
ORDER  BY tmp.id

मैंने एक ORDER BY . जोड़ा खंड जिसकी आपको सख्त आवश्यकता नहीं है, लेकिन यदि आप अपना डेटा उस (या किसी अन्य) तरीके से सम्मिलित करते हैं तो कुछ प्रश्नों का लाभ हो सकता है।

यदि आप उन पंक्तियों को खोने से बचना चाहते हैं जहाँ आपको language . में मेल खाने वाली पंक्ति नहीं मिल रही है या template , इसे LEFT JOIN . बनाएं इसके बजाय JOIN दोनों तालिकाओं के लिए (बशर्ते कि language_id और template_id NULL हो सकता है ।

इसके अलावा जो मैंने पहले ही प्रीक्वेल प्रश्न के तहत सूचीबद्ध किया है। :यदि INSERT बहुत बड़ा है और लक्ष्य तालिका का एक बड़ा हिस्सा है, तो संभवत:सभी अनुक्रमणिका को DROP करना तेज़ है लक्ष्य तालिका पर और बाद में उन्हें फिर से बनाएँ। शुरुआत से अनुक्रमणिका बनाना बहुत है तेजी से फिर उन्हें हर पंक्ति के लिए क्रमिक रूप से अपडेट करना।

अद्वितीय इंडेक्स अतिरिक्त रूप से बाधाओं के रूप में काम करते हैं, इसलिए आपको यह विचार करना होगा कि नियमों को बाद में लागू करना है या उन्हें जगह में छोड़ देना है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQl फ़ंक्शन कई गतिशील परिणाम सेट लौटाता है

  2. PostgreSQL के लिए अपग्रेड प्रक्रिया का स्वचालित परीक्षण

  3. Postgresql स्तंभ संदर्भ आईडी अस्पष्ट है

  4. रेल:पीजी ::अपरिभाषित तालिका:त्रुटि:संबंध ... मौजूद नहीं है

  5. PostgreSQL के लिए Percona वितरण की निगरानी - प्रमुख मेट्रिक्स