2013-06-24 8 views
12

जोड़ते समय "उपयोगकर्ता" पर या उसके पास सिंटेक्स त्रुटि मैं पोस्टग्रेस 8.4.13 चला रहा हूं, और किसी मौजूदा तालिका में बाधा जोड़ने की कोशिश कर रहा हूं। the docs के अनुसार, यह संभव होना चाहिए:पोस्टग्रेस बाधा

alter table indexed_friends add constraint no_duplicate_user_friends unique (user, friend); 

अभी तक मैं निम्नलिखित त्रुटि मिलती है जब मैं इस चलाएँ:

ERROR: syntax error at or near "user" 

मैं उलझन में हूँ क्योंकि मैं में सूचीबद्ध एक अद्वितीय बाधा उदाहरण का अनुसरण कर रहा हूँ दस्तावेज लगभग बिल्कुल। मैं टेबल स्कीमा प्रदान कर सकता हूं, लेकिन चूंकि यह सिंटैक्स त्रुटि के बारे में शिकायत कर रहा है, मुझे यकीन नहीं है कि यह आवश्यक है।

उत्तर

21

अहह ... user शब्द पोस्टग्रेस में एक आरक्षित शब्द है।

उद्धरण में यह आसपास के:

alter table indexed_friends add constraint no_duplicate_user_friends unique ("user", friend); 

काम किया।

+1

बेहतर अभी भी, आरक्षित शब्दों का उपयोग कॉलम नामों के रूप में नहीं करें। यह सिर्फ दुख की एक सतत श्रृंखला है और इस तरह की समस्याएं हैं। –

+0

हाँ ... दुख की बात है कि मैंने स्क्लेक्लेमी में प्रारंभिक स्कीमा किया था, इसलिए मुझे समस्या का एहसास भी नहीं हुआ। –

0

यह बहुत अच्छा है, user पोस्टग्रेस्क्ल में एक कीवर्ड है। मैं xx_user नामक तालिका बनाउंगा। xx प्रारंभिक