PostgreSQL में CHARACTER VARYING और VARCHAR में क्या अंतर है?


114

जॉनCHARACTER VARYING उन जगहों पर उपयोग करता है जहां मैं उपयोग करता हूं VARCHAR। मैं एक शुरुआती हूं, जबकि वह एक विशेषज्ञ है। इससे मुझे पता चलता है कि ऐसा कुछ है जो मैं नहीं जानता।

PostgreSQL में CHARACTER VARYING और VARCHAR में क्या अंतर है?

जवाबों:


128

वैरिएचर के लिए भिन्नता एक भिन्न नाम है, इसलिए कोई अंतर नहीं है, प्रलेखन देखें :)

वर्ण भेद (एन) और चार (एन) वर्ण भिन्नता (एन) और चरित्र (एन) के लिए क्रमशः उपनाम हैं। चरित्र के बिना लंबाई निर्दिष्ट चरित्र (1) के बराबर है। यदि वर्ण भिन्नता का उपयोग लंबाई निर्दिष्ट किए बिना किया जाता है, तो टाइप किसी भी आकार के तारों को स्वीकार करता है। उत्तरार्द्ध एक PostgreSQL एक्सटेंशन है।


9
यह दूसरे तरीके से गोल है: varchar अलग करने के लिए एक उपनाम है। पांडित्य नहीं है, लेकिन यह आपकी बोली में वहीं है।
zerzevul

2
@zerzevul एक दस्तावेज से असहमत हो सकता है और यहां चार्ल्स से सहमत हो सकता है, यह देखते हुए कि varchar(n)आदि ANSI मानक हैं और यह वाक्यविन्यास PostgreSQL के लिए अजीब है।
BobRodes 3


4

फर्क सिर्फ इतना है कि वर्णक्रम VARCHAR की तुलना में अधिक मानवीय अनुकूल है


1
@ हज़ोप मुझे COBOL से अवगत होने का सौभाग्य नहीं मिला है, लेकिन मुझे अंग्रेजी से अवगत कराया गया है और मुझे लगता है कि "VARCH ARe what?" :-)
इंकोर

8
इसके अलावा, मुझे लगता है कि यह शीर्ष प्रोग्रामर को भ्रमित कर रहा है;) वे
वर्चर्स के

3

दोनों एक ही बात है, लेकिन कई डेटाबेस अलग-अलग चार प्रदान नहीं कर रहे हैं मुख्य रूप से पोस्टग्रेक्यूएल प्रदान कर रहा है। तो Oracle Postgre और DB2 जैसे मल्टी डेटाबेस के लिए Varchar का उपयोग करना अच्छा है


2

संक्षिप्त उत्तर: कोई अंतर नहीं है।

लंबा उत्तर: CHARACTER VARYINGएएनएसआई एसक्यूएल मानक से आधिकारिक प्रकार का नाम है, जिसका समर्थन करने के लिए सभी आज्ञाकारी डेटाबेस की आवश्यकता होती है। VARCHARएक छोटा उपनाम है जो सभी आधुनिक डेटाबेस भी समर्थन करते हैं। मैं पसंद करता हूं VARCHARक्योंकि यह छोटा है और क्योंकि लंबा नाम पांडित्यपूर्ण लगता है। हालाँकि, जैसे उपकरण को पोस्ट करेगा pg_dumpऔर \dआउटपुट करेगाcharacter varying

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.