टिप्पणियों के विपरीत, PostgreSQL में एक ही टेबल पर समवर्ती सम्मिलन पूरी तरह से अनुमत हैं, इसलिए यहां एक दौड़ की स्थिति है।
इसे सुरक्षित बनाने के लिए आपके पास एक unique
होना चाहिए बाधा (या primary key
) column_name
. पर . फिर डुप्लीकेट इंसर्ट एक अपवाद को फेंक देगा जिसे आप पकड़ सकते हैं और अपडेट के साथ पुनः प्रयास कर सकते हैं।
यदि आपके पास एक अद्वितीय बाधा नहीं है, तो आपको LOCK TABLE ... IN EXCLUSIVE MODE
समवर्ती अपवर्तन को रोकने के लिए। या इसमें वर्णित समवर्ती-सुरक्षित विधियों में से एक का उपयोग करें:
PostgreSQL में UPSERT (MERGE, INSERT ... ऑन डुप्लीकेट अपडेट) कैसे करें?