2012-10-16 17 views
5

पीजी में:अद्वितीय अवरोध छोड़ने में समस्या

मैंने एक उपयोगकर्ता तालिका बनाई जिसमें अद्वितीय ईमेल शामिल हैं, लेकिन बाद में निर्णय लिया गया कि ईमेल अद्वितीय नहीं होना चाहिए। मैंने अपने ईमेल फ़ील्ड को अनूठा बनाने के लिए परिवर्तनों को धक्का दिया (मैं एक ओआरएम का उपयोग करता हूं, इसलिए मेरे पास वास्तव में सटीक एसक्यूएल नहीं है), लेकिन पीजी अभी भी मुझे डुप्लिकेट ईमेल पते का उपयोग करने नहीं देगा।

मैंने इंडेक्स की जांच की और यह अद्वितीय नहीं है, लेकिन मुझे डुप्लिकेट ईमेल पते रखने से रोकना एक बाधा है। हालांकि मुझे इस बाधा को छोड़ने में परेशानी हो रही है। मैं क्या गलत कर रहा हूं?

SQL> ALTER TABLE "users" DROP CONSTRAINT "unique_users_email" 
PGError: ERROR: constraint "unique_users_email" of relation "users" does not exist 

SQL> UPDATE users SET email = '[email protected]' 
PGError: ERROR: duplicate key value violates unique constraint "unique_users_email" 
DETAIL: Key (email)=([email protected]) already exists. 
+0

शायद बदलाव करने के लिए एक जगह है? इसके अलावा, कोशिश: 'टेबल बदल" उन " अक्षम बाधा" unique_users_email ",' – jt234

+0

@ jt234 work.'PGError नहीं था कि: त्रुटि: पर सिंटेक्स त्रुटि या निकट "बाधा" पंक्ति 1: परिवर्तन तालिका "उपयोगकर्ता" CONSTRAINT को अक्षम करते हैं "unique_users_email"; 'इस समस्या को छोड़कर, मेरे परिवर्तन ठीक ठीक लगते हैं। – AlexQueue

+0

कैसे सभी को ट्रिगर करने के बारे में? – jt234

उत्तर

3

मुझे यकीन है कि "unique_users_email" वास्तव में एक अद्वितीय सूचकांक के बजाय एक बाधा का नाम है। प्रयास करें:

DROP INDEX "unique_users_email";

psql के हाल के संस्करण आप एक अद्वितीय सूचकांक और एक अद्वितीय बाधा के बीच का अंतर बताना चाहिए जब एक तालिका के \d विवरण को देखकर।

+0

यदि स्कीमा सार्वजनिक स्कीमा का हिस्सा नहीं है तो स्कीमा निर्दिष्ट करना सुनिश्चित करें: DROP INDEX myschema.unique_users_email; – buddamus

संबंधित मुद्दे