मुझे उन सभी के अंतर के बारे में पता है varchar
जिनकी सीमा है, और text
नहीं है। प्रलेखन इस बारे में उल्लेख नहीं है।
क्या वास्तव में केवल यही अंतर है? प्रदर्शन या आदि के बारे में कोई विचार नहीं?
मुझे उन सभी के अंतर के बारे में पता है varchar
जिनकी सीमा है, और text
नहीं है। प्रलेखन इस बारे में उल्लेख नहीं है।
क्या वास्तव में केवल यही अंतर है? प्रदर्शन या आदि के बारे में कोई विचार नहीं?
जवाबों:
इसकी पृष्ठभूमि यह है: पुराने पोस्टग्रेज सिस्टम ने पोस्टक्वल भाषा का इस्तेमाल किया और एक डेटा प्रकार का उपयोग किया जिसका नाम है text
(क्योंकि किसी ने सोचा था कि यह एक प्रकार का अच्छा नाम है जो पाठ को संग्रहीत करता है)। तब, Postgres SQL को अपनी भाषा के रूप में उपयोग करने के लिए परिवर्तित किया गया था। SQL संगतता प्राप्त करने के लिए, text
प्रकार का नाम बदलने के बजाय , एक नया प्रकार varchar
जोड़ा गया था। लेकिन दोनों प्रकार आंतरिक रूप से समान सी दिनचर्या का उपयोग करते हैं।
अब, कुछ हद तक और कुछ स्थानों पर, text
एक डिफ़ॉल्ट प्रकार के रूप में हार्डकोड किया जाता है, अगर मामले में कुछ और नहीं निकाला जा सकता है। इसके अलावा, अधिकांश फ़ंक्शन केवल एक text
तर्क लेने या लौटने के रूप में उपलब्ध हैं text
। दो प्रकार द्विआधारी संगत हैं, इसलिए कास्टिंग एक तुच्छ पार्स-टाइम ऑपरेशन है। लेकिन text
सिस्टम का उपयोग करना अभी भी स्वाभाविक है।
लेकिन इन बारीक बिंदुओं से अलग, ध्यान देने योग्य अंतर नहीं है। जो भी आपको अच्छा लगे, उसका उपयोग करें। ;-)
इसी तरह का प्रश्न देखें । जिस्ट यह है कि कोई अंतर नहीं है, लेकिन अधिकतम लंबाई निर्दिष्ट करना जैसे कि varchar(n)
आमतौर पर आपके पक्ष में नहीं है, क्योंकि यह अधिक स्थान का उपयोग करता है लेकिन प्रदर्शन में सुधार नहीं करता है।
http://www.postgresql.org/docs/8.4/interactive/datatype-character.html
character varying(n), varchar(n) variable-length with limit
text variable unlimited length
घोषित लंबाई के बिना पाठ। इन दो प्रकारों के बीच कोई प्रदर्शन अंतर नहीं हैं।