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

पोस्टग्रेज 9.5 . में अप्सर्ट को सही तरीके से कैसे करें

ON CONFLICT निर्माण के लिए UNIQUE की आवश्यकता होती है काम करने में बाधा। INSERT .. ON CONFLICT खंड :

अब, प्रश्न बहुत स्पष्ट नहीं है लेकिन आपको संभवतः एक UNIQUE . की आवश्यकता है संयुक्त 2 स्तंभों पर प्रतिबंध:(category_id, gallery_id)

ALTER TABLE category_gallery
    ADD CONSTRAINT category_gallery_uq
    UNIQUE (category_id, gallery_id) ;

यदि सम्मिलित की जाने वाली पंक्ति दोनों . से मेल खाती है पहले से टेबल पर एक पंक्ति के साथ मान, फिर INSERT . के बजाय , एक UPDATE करें :

INSERT INTO category_gallery (
  category_id, gallery_id, create_date, create_by_user_id
  ) VALUES ($1, $2, $3, $4)
  ON CONFLICT (category_id, gallery_id)
  DO UPDATE SET
    last_modified_date = EXCLUDED.create_date,
    last_modified_by_user_id = EXCLUDED.create_by_user_id ;

आप या तो UNIQUE बाधा के स्तंभों का उपयोग कर सकते हैं:

  ON CONFLICT (category_id, gallery_id) 

या बाधा नाम:

  ON CONFLICT ON CONSTRAINT category_gallery_uq  


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मेरे Android Studio ऐप को PostgreSQL से कनेक्ट नहीं कर सकता

  2. डेटा को सॉर्ट न करें कैसे रखें?

  3. कुल initcond . बनाने में postgresql विकृत सरणी शाब्दिक

  4. psycopg2 मैपिंग पायथन:पोस्टग्रेज के लिए डिक्ट्स की सूची:INSERT कथन के लिए समग्र प्रकार की सरणी

  5. पोस्टग्रेएसक्यूएल बी-ट्री इंडेक्स पर नोट्स