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

प्रतिलिपि csv postgresql पर डुप्लिकेट डेटा को रोकने का सबसे अच्छा तरीका

अप्सर्ट

Linoff द्वारा उत्तर सही है लेकिन पोस्टग्रेज 9.5 नई "UPSERT" सुविधा द्वारा थोड़ा सरल किया जा सकता है (a.k.a. MERGE ) वह नई सुविधा Postgres में <के रूप में लागू की गई है कोड>संघर्ष पर डालें वाक्य रचना।

अद्वितीय अनुक्रमणिका के उल्लंघन की स्पष्ट रूप से जाँच करने के बजाय, हम CONFLICT . को अनुमति दे सकते हैं खंड उल्लंघन का पता लगाता है। फिर हम कुछ नहीं करते , जिसका अर्थ है कि हम INSERT . के प्रयास को छोड़ देते हैं अद्यतन का प्रयास किए बिना परेशान किए बिना . इसलिए यदि हम सम्मिलित नहीं कर सकते हैं, तो हम अगली पंक्ति में चले जाते हैं।

हमें लिनॉफ़ के कोड के समान परिणाम मिलते हैं लेकिन WHERE . खो देते हैं खंड।

INSERT INTO bigtable(col1, … )
    SELECT col1, …
    FROM stagingtable st
ON CONFLICT idx_bigtable_col1_col2_col
DO NOTHING
;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सरणी टेक्स्ट को क्वेरी करने के लिए SQL को पोस्टग्रेज करता है [] विशिष्ट तत्व में

  2. रेल 5.0.0.beta3, -api विकल्प में accepts_nested_attributes_for के साथ समस्या

  3. पिछली (अज्ञात) तिथि का SQL मान

  4. PostgreSQL में डेटा विभाजन के लिए एक गाइड

  5. रेल में एकाधिक डेटाबेस कनेक्शन