क्या पोस्टग्रेस 9.5 में upsert
करना संभव है जब तालिका में 2 स्तंभों में से एक पर संघर्ष होता है। असल में मेरे पास 2 कॉलम हैं और यदि कोई कॉलम अद्वितीय बाधा उल्लंघन को फेंकता है, तो मैं अद्यतन ऑपरेशन करना चाहता हूं।2 कॉलम में से किसी एक पर संघर्ष पर पोस्टग्रेज़ में अपरिवर्तित कैसे करें?
8
A
उत्तर
5
हां, और यह व्यवहार डिफ़ॉल्ट है। कोई अद्वितीय बाधा उल्लंघन एक संघर्ष का गठन करता है और UPDATE
निष्पादित किया जाता है यदि ON CONFLICT DO UPDATE
निर्दिष्ट है। INSERT
कथन में केवल एक ही ON CONFLICT
खंड हो सकता है, लेकिन उस खंड के conflict_target
कई स्तंभ नाम निर्दिष्ट कर सकते हैं जिनमें से प्रत्येक में एक सूचकांक होना चाहिए, जैसे कि UNIQUE
बाधा। हालांकि, आप एक conflict_action
तक सीमित हैं और आपको उस जानकारी को संसाधित करते समय किस बाधा के कारण संघर्ष की वजह से जानकारी नहीं होगी। यदि आपको बाधा उल्लंघन के आधार पर उस तरह की जानकारी, या विशिष्ट कार्रवाई की आवश्यकता है, तो आपको एक ट्रिगर फ़ंक्शन लिखना चाहिए, लेकिन फिर आप INSERT ... ON CONFLICT DO ...
कथन की सभी महत्वपूर्ण परमाणुता खो देते हैं।
संबंधित मुद्दे
- 1. पोस्टग्रेज़: कॉलम में सभी मानों को एक से अपडेट करें?
- 2. Matlab में एक कॉलम वेक्टर पर फिर से कैसे करें?
- 3. किसी तालिका से एक कॉलम से एक कॉलम में एकाधिक कॉलम में शामिल हों
- 4. MySQL में कॉलम में से किसी एक पर चयन के आधार पर सम्मिलित है?
- 5. डेटाबेस कॉलम एन्क्रिप्शन पोस्टग्रेज़
- 6. सरल अद्यतन क्वेरी पर पोस्टग्रेज़ में डेडलॉक
- 7. कैसंड्रा एक कॉलम से दूसरे कॉलम पर डेटा कॉपी करें
- 8. जावा पर आधारित पोस्टग्रेज़ में टाइमस्टैम्प सहेजना
- 9. पोस्टग्रेज़ पर घातीय चलने वाले औसत की गणना कैसे करें?
- 10. पांडा डेटाफ्रेम, किसी विशिष्ट कॉलम पर फ़ंक्शन कैसे लागू करें?
- 11. किसी अन्य कॉलम से सशर्त कथन के आधार पर डेटाफ्रेम में कारक कॉलम कैसे जोड़ें?
- 12. पोस्टग्रेज़: पंक्तियों में जेएसओएन कॉलम का विस्तार करें
- 13. किसी तालिका में एकाधिक कॉलम कैसे जोड़ें और उनमें से एक पर डिफ़ॉल्ट बाधा जोड़ें?
- 14. किसी अन्य कॉलम में मानों के आधार पर एक कॉलम में कुल डेटा
- 15. किसी अन्य कॉलम में कारक स्तर के आधार पर एक कॉलम में संख्यात्मक मान बदलें
- 16. SELECT स्टेटमेंट पोस्टग्रेज़ में डायनामिक कॉलम
- 17. जीआईटी पुल संघर्ष: किसी भी शाखा पर कैसे नहीं आते?
- 18. किसी तालिका में एक कॉलम में एकाधिक कॉलम में किसी अन्य तालिका में एक कॉलम में शामिल होना
- 19. पोस्टग्रेज़ में एक रेंज बनाएं
- 20. स्थिति के आधार पर किसी अन्य तालिका से तालिका में कॉलम को कैसे अपडेट करें?
- 21. आरसीपीपी मैट्रिक्स: पंक्तियों पर लूप, एक समय में एक कॉलम
- 22. पोस्टग्रेज़ में एक क्वेरी क्वेरी में एक तालिका में एकाधिक कॉलम कैसे बनाएं?
- 23. लिनक्स पर प्रोजेक्ट में साझा पुस्तकालयों (.so) में से किसी एक में फ़िक्स कैसे करें?
- 24. SQL स्तंभ किसी अन्य कॉलम से अधिकतम मान के आधार पर कॉलम पर शामिल होता है
- 25. गिट चेकआउट --समम-अपरिवर्तित फ़ाइलों पर एक त्रुटि फेंकता है
- 26. पोस्टग्रेज़ पर सभी डेटाबेस कैसे हटाएं?
- 27. पोस्टग्रेज़ में डेटाबेस कॉपी करें
- 28. ड्रॉपडास्टलिस्ट से डेटाटेक्स्टफील्ड में डेटाटेबल से 2 कॉलम मर्ज करें
- 29. उसी तालिका में किसी अन्य कॉलम के मान के आधार पर तालिका में नया कॉलम जोड़ें
- 30. पोस्टग्रेज़ में, आप किसी विशेष कॉलम के लिए संभावित मानों को कैसे प्रतिबंधित करते हैं?
मुझे यकीन नहीं है कि यह 100% सही है, माना जाता है कि सवाल अस्पष्ट है। यदि 2 कॉलम में अलग-अलग अद्वितीय बाधाएं हैं (जो मुझे प्रश्न से समझा जाता है), तो ON CONFLICT का उपयोग केवल कुछ भी करने के लिए नहीं किया जा सकता है। आप तथाकथित conflict_target श्रृंखला या "संयोजन" प्रतीत नहीं कर सकते हैं। – Jeff
@ जेफ ने मेरा जवाब विस्तारित किया। – Patrick
आपके अपडेट के लिए धन्यवाद। यह मेरे स्वयं के प्रश्न का उत्तर देता है कि हम एक ही INSERT के साथ दो अलग-अलग उल्लंघनों को संभाल सकते हैं या नहीं। – Jeff