2012-09-10 15 views
6

हाल ही में मुझे mysql में एक नई समस्या का सामना करना पड़ा। मैं col1 timestamp default null column having default null value के साथ एक नई तालिका बनाने वाला था, लेकिन सृजन पर जिसने मुझे त्रुटि दी कि स्तंभ के लिए अमान्य डिफ़ॉल्ट मान। लेकिन जब मैंने col1 timestamp null default null की कोशिश की, तो वह तालिका बनाई गई।mysql में शून्य डिफ़ॉल्ट शून्य और डिफ़ॉल्ट शून्य के बीच अंतर?

मैं जानना चाहता हूं कि उपरोक्त दो वाक्यविन्यासों के बीच क्या अंतर है। कॉलम में कुछ सम्मिलित शून्य मानों में भी मुझे इस मुद्दे का भी सामना करना पड़ा।

क्या कोई इस समस्या को समझा सकता है कि यह संस्करण विशिष्ट समस्या है या mysql के साथ कुछ और है।

+0

यदि आपके पास सिर्फ 'col1 timestamp null' है, तो' डिफ़ॉल्ट शून्य 'छोड़ा जा सकता है (कम से कम प्रलेखन के अनुसार)। एक गैर-टिकाऊ टाइमस्टैम्प कॉलम ने विशेष गुणों को पूर्वनिर्धारित किया है, लेकिन जब आप स्पष्ट रूप से स्तंभ को शून्य बनाते हैं तो उन्हें दबा दिया जाता है। – hvd

उत्तर

9

पहला "शून्य" कहता है कि कॉलम शून्य है, यानी शून्य स्वीकार करता है। दूसरा "शून्य" (डिफ़ॉल्ट के बाद) डिफ़ॉल्ट मान है।

यदि आपके पास केवल डिफ़ॉल्ट है, लेकिन कॉलम को नल को अस्वीकार कर दें, तो उस डिफ़ॉल्ट का उपयोग नहीं किया जा सकता है।

(हालांकि, यदि आप न तो NULL और न ही NOT NULL निर्दिष्ट करते हैं कि कॉलम निरर्थक था, तो आप जो देखते हैं वह थोड़ा उलझन में है)।

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