2011-06-10 14 views
5

मैं एक टेबल बनाना चाहता हूं जिसका फ़ील्ड नाम 100 अक्षरों का है लेकिन वर्णों की संख्या के लिए पोस्टग्रेस सीमा 64 है तो उस सीमा को 100 में कैसे बदला जाए?पोस्टग्रेज़ टेबल फ़ील्ड नाम सीमा को कैसे बदला जाए?

उदाहरण: तालिका परीक्षण बनाएँ ( PatientFirstnameLastNameSSNPolicyInsuraceTicketDetailEMRquestionEMR varchar (10) )

के रूप में नाम 64 वर्णों

+1

मैं कोडर नहीं बनना चाहता हूं जिसे उस 100 वर्ण-लंबे कॉलम नाम को टाइप करने की आवश्यकता है। :-) –

+0

http://stackoverflow.com/questions/3836247/how-do-i-change-the-namedatalen-configuration-after-installing-postgresql-9-0 –

+0

@ डेनिस: मुझे पता चला है pgAdminIII के SQL पृष्ठ से बहुत कम कॉलम नामों की प्रतिलिपि बनाने के लिए। कम टाइपो। –

उत्तर

10

असल नाम की सीमा NAMEDATALEN - 1 बाइट्स (जरूरी नहीं वर्ण) के बराबर है, NAMEDATALEN के लिए डिफ़ॉल्ट मान 64.

(src/include/pg_config_manual.h में) NAMEDATALEN संकलन समय पर निर्धारित किया गया था है। इसे पोस्ट करने के लिए आपको PostgreSQL को नई NAMEDATALEN सीमा के साथ दोबारा जोड़ना होगा।

हालांकि मानक 63 बाइट्स सीमा के साथ अन्य सर्वरों के साथ डिज़ाइन और संगतता के बारे में सोचें। ऐसे लंबे नामों का उपयोग करना आम बात नहीं है।

0

यह special name type (देखें तालिका 8.5) की वजह से है, से अधिक है इस तालिका में निर्माण में विफल रहता है जो pg_catalog में प्रयोग किया जाता है। यह 63 बाइट्स (प्लस टर्मिनेटर) से अधिक कुछ भी स्वीकार नहीं करेगा। कोई कामकाज नहीं है।

+4

PostgreSQL खुला स्रोत है। ओपन सोर्स सॉफ्टवेयर के लिए * हमेशा * एक वर्कअराउंड है। लेकिन यह अक्सर सुखद नहीं है। :-) –

+0

हाँ, मुझे पता है, लेकिन मुझे संदेह है कि ओपी को उसके हाथ गंदे मिलेंगे। ;-) –

+0

प्लस, 63 वर्ण, टिप्पणियों में जुड़े अन्य धागे में उल्लेख किए गए हैं, "insanely_stupid_and_totally_impractical_table_or_function_name0" को स्वीकार करने के लिए काफी लंबा :- डी –

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