जब आप एक पंक्ति (PostgreSQL> = 9.5) को अपरिवर्तित कर रहे हैं, और आप संभावित INSERT को यथासंभव अद्यतन के समान होना चाहते हैं, तो आप इसे इस तरह लिख सकते हैं :कॉन्फ्लिक्ट अपडेट (अप्सर्ट) पर पोस्टग्रेएसक्यूएल इंसर्ट सभी बहिष्कृत मूल्यों का उपयोग करें
INSERT INTO tablename (id, username, password, level, email)
VALUES (1, 'John', 'qwerty', 5, '[email protected]')
ON CONFLICT (id) DO UPDATE SET
id=EXCLUDED.id, username=EXCLUDED.username,
password=EXCLUDED.password, level=EXCLUDED.level,email=EXCLUDED.email
क्या कोई छोटा रास्ता है? बस कहने के लिए: सभी EXCLUDE मानों का उपयोग करें।
INSERT OR REPLACE INTO tablename (id, user, password, level, email)
VALUES (1, 'John', 'qwerty', 5, '[email protected]')
नहीं एक असली जवाब है, लेकिन आप थोड़ा शीघ्र ही संकेतन का उपयोग कर सकते हैं: 'tablename में डालने (आईडी, नाम, पासवर्ड, स्तर, ईमेल) मान (1, 'जॉन', 'qwerty', 5 , '[email protected]') ऑन कॉन्फ्लिक्ट (आईडी) सेट (उपयोगकर्ता नाम, पासवर्ड, स्तर, ईमेल) = (EXCLUDED.username, EXCLUDED.password, EXCLUDED.level, EXCLUDED.email) अद्यतन करें। लगभग लगभग वही, लेकिन कॉलम सूची कॉपी/पेस्ट/प्रबंधित करने में आसान – foal
एक और विकल्प जेसनबी कॉलम का उपयोग करना है और इस तरह आपको कॉलम के बारे में चिंता करने की ज़रूरत नहीं है –