MySQL में बीआईटी और टिन्यिनट के बीच क्या अंतर है?




bit tinyint (5)

आप किस मामले में उपयोग करेंगे? क्या कोई अंतर है? जो मैं आमतौर पर बुलियन स्टोर करने के लिए दृढ़ता इंजन द्वारा उपयोग किया जाता है?


alt text http://dev.mysql.com/common/logos/logo_mysql_sun_a.gif

संख्यात्मक प्रकार के अवलोकन से ;

बीआईटी [(एम)]

एक बिट-फील्ड प्रकार। एम 1 से 64 तक प्रति मान बिट्स की संख्या इंगित करता है। यदि एम छोड़ा जाता है तो डिफ़ॉल्ट 1 होता है।

यह डेटा प्रकार MyISQL के लिए MySQL 5.0.3 में जोड़ा गया था, और 5.0.5 में मेमोरी, इनो डीबी, बीडीबी, और एनडीबीसीएलस्टर में विस्तारित किया गया था। 5.0.3 से पहले, बीआईटी TINYINT (1) का पर्याय है।

टिन्यिनट [(एम)] [अनसुलझा] [ज़ीरोफिल]

एक बहुत छोटा पूर्णांक। हस्ताक्षरित रेंज -128 से 127 है। हस्ताक्षरित रेंज 0 से 255 है।

इसके अतिरिक्त इस पर विचार करें;

बूल, बुलेन

ये प्रकार TINYINT (1) के लिए समानार्थी हैं। शून्य का मान झूठा माना जाता है। गैर-शून्य मानों को सत्य माना जाता है।


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

बिट अब के लिए सुरक्षित नहीं है। मैं tinyint (1) में बदल गया और पूरी तरह से काम किया। मेरा मतलब है कि अगर आपको 1 या 0 और टिनिंट (1) है तो इसके लिए आपको केवल एक मूल्य की आवश्यकता है, यह ठीक है


बीआईटी को केवल 0 और 1 (और न्यूल, अगर फ़ील्ड को न्यूल के रूप में परिभाषित नहीं किया गया है) की अनुमति देनी चाहिए। TINYINT (1) किसी भी वैल्यू को अनुमति देता है जिसे एक बाइट, -128..127 या 0..255 में संग्रहीत किया जा सकता है, इस पर निर्भर करता है कि यह हस्ताक्षरित है या नहीं (1 दिखाता है कि आप केवल एक अंक का उपयोग करना चाहते हैं, लेकिन यह करता है आपको एक बड़ा मूल्य संग्रहित करने से नहीं रोकता है)।

5.0.3 से पुराने संस्करणों के लिए, बीआईटी का अर्थ TINYINT (1) के रूप में किया जाता है, इसलिए वहां कोई अंतर नहीं है।

बीआईटी में "यह एक बूलियन" अर्थपूर्ण है, और कुछ ऐप्स टिन्यिनट (1) को उसी तरह मानेंगे (जिस तरह से MySQL इसका इलाज करने के लिए उपयोग किया जाता है), इसलिए यदि वे प्रकार की जांच करते हैं तो ऐप्स कॉलम को चेक बॉक्स के रूप में प्रारूपित कर सकते हैं और उस पर आधारित प्रारूप पर फैसला करें।


एक TINYINT एक 8-बिट पूर्णांक मान है, एक बीआईटी क्षेत्र 1 बिट, बीआईटी (1), और 64 बिट्स, बिट (64) के बीच स्टोर कर सकता है। एक बुलियन मूल्यों के लिए, बीआईटी (1) काफी आम है।


गलत हो सकता है लेकिन:

टिनिंट 0 और 255 के बीच एक पूर्णांक है

बिट या तो 1 या 0 है

इसलिए मेरे लिए बूलियन के लिए पसंद है







tinyint