TINYINT (1) पर BOOLEAN का उपयोग करने का क्या लाभ है?


16

MySQL मैनुअल से, यह कहता है:

BOOL, BOOLEAN

ये प्रकार टिनिट (1) के पर्यायवाची हैं। शून्य का मान गलत माना जाता है। नॉनज़ेरो मूल्यों को सच माना जाता है:

मैंने 0डिफ़ॉल्ट मान के साथ एक BOOLEAN कॉलम बनाया । तब मैं मान को अद्यतन करता हूं 2। तार्किक रूप से, मुझे उम्मीद है कि MySQL 0या तो 1इसे स्वीकार करेगा या चूंकि यह एक बूलियन है। हालाँकि, MySQL ने कोई त्रुटि जारी नहीं की या मुझे अपडेट करने से नहीं रोका।

यदि BOOLEAN TINYINT (1) के समान कार्य करता है, तो क्या इससे कोई फर्क पड़ता है कि क्या मैं TINYINT (1) या BOOLEAN का उपयोग करता हूं?

जवाबों:


11

वे दोनों वास्तव में पर्यायवाची शब्द हैं, इसलिए आप उनका परस्पर उपयोग कर सकते हैं। आप उनके बीच कोई अंतर नहीं देखेंगे।

यदि आप केवल 0 और 1 की अनुमति देना चाहते हैं, तो आप अभी भी bitप्रकार का उपयोग कर सकते हैं ।


1
@QuestionOverflow ध्यान रखें कि BITवास्तव में एक बिट फ़ील्ड है जो एक से चौंसठ बिट्स को कॉम्पैक्ट रूप से रखता है।
डेविड हार्कस

2

यदि आप अन्य लोगों के साथ काम कर रहे हैं (या आप खुद को याद दिलाना चाहते हैं), तो आप यह BOOLEANसुझाव देने के लिए डेटा प्रकार का उपयोग कर सकते हैं कि डेटा केवल 1 या 0 के मान पर लेना है।


0

मुझे लगता है कि वास्तव में एक अंतर है।

मैं जिस तालिका का उपयोग कर रहा हूं, उसमें एक कॉलम के साथ एक तमाशा के रूप में परिभाषित एक स्तंभ है। जब मैं निम्नलिखित क्वेरी को "टेबल से चयन करें" समझाता हूं जहां कॉलम सही है "तो यह इंगित करता है कि यह तालिका की सभी पंक्तियों (" संभव_कीप्स "और" रेफरी "कॉलम को पढ़ने के लिए जा रहा है," कुंजी "कॉलम दिखाने के बावजूद अशक्त है) इंडेक्स)।

"संभावित कुंजियों" और "रेफरी" कॉलमों को निर्धारित मानों और "पंक्तियों" को बहुत कम संख्या पर सेट करने के साथ क्वेरी को "तालिका में से चयन करें * जहां कॉलम = 1" को सही ढंग से बदलता है।

मैंने "झूठे" के साथ "सच" और 1 को 0 के साथ बदलने की कोशिश की और तुलनीय परिणाम मिला।

इसे एक कदम आगे बढ़ाते हुए मैंने एक छोटे से एक इंट से स्विच किया और इससे कोई फर्क नहीं पड़ा।

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