एसक्यूएल के कई स्वादों में, तीन पंक्तियां हैं जो आप प्रत्येक पंक्ति सम्मिलन पर पूर्ण रूप से कॉलम को एनयूएलएल सेट कर सकते हैं। येडिफ़ॉल्ट शून्य के साथ MySQL कॉलम - स्टाइलिस्ट पसंद, या यह है?
columnname type NULL
columnname type DEFAULT NULL
columnname type NULL DEFAULT NULL
यानी पहले एक शून्य झंडा सेट (के रूप में नहीं शून्य के खिलाफ), दूसरा एक डिफ़ॉल्ट मान पर शून्य झंडा छोड़ देता है, और तीसरा एक शून्य झंडा सेट करता है और अंतर्निहित मूल्य के रूप में सेट कर रहे हैं शून्य।
मैंने माइक्रोसॉफ्ट एसक्यूएल में कैसे सुना है, दूसरी भिन्नता बिल्कुल वही नहीं है क्योंकि आप टेबल या स्कीमा के लिए नल फ्लैग के डिफ़ॉल्ट मान को भी कस्टमाइज़ कर सकते हैं।
लेकिन MySQL के लिए, मुझे विश्वास नहीं है कि ऐसी सुविधा है। इसके अलावा, MySQL में, नल फ्लैग वाले कॉलम, नल कॉलम के विपरीत, अगर कोई स्पष्ट मूल्य नहीं है, भले ही सख्त मोड चालू हो, तो हमेशा निहित पर पूर्ण पर सेट किया जाता है। इसलिए ये सभी कॉलम घोषणाओं को समान छोड़ देता है।
मेरी माईएसQL स्क्रिप्ट में, प्रत्येक नल कॉलम के लिए, मैं कॉलम के लिए एक डिफॉल्ट मान निर्दिष्ट करता हूं, यदि मैं सख्त मोड सक्षम करना चाहता हूं तो किसी भी मुद्दे से बचने के लिए, मेरे आवेदन में कुछ प्रविष्टियों में सेट करने की उम्मीद नहीं है। इस प्रकार, मुझे लगता है कि अगर मैं तीसरा विविधता चुनना चाहता हूं, तो यह अधिक सममित होगा और भले ही यह सबसे अधिक verbose और स्पष्ट है। क्या तीसरे बदलाव की तरह आम घोषणाएं हैं, या क्या पहली या दूसरी भिन्नता दूसरों की लिपियों में अधिक बार होती है?
मैं दूसरे दृष्टिकोण पर झुकाव पर विचार कर रहा था क्योंकि यह मेरा उपनाम है कि MySQL डंप का उपयोग करता है, लेकिन मुझे यकीन नहीं है कि यह एक अच्छा विचार है क्योंकि यह कॉलम घोषणाओं के डिफ़ॉल्ट खंडों में तारों (सिंगल कोट्स) के रूप में पूर्णांक अक्षर को भी डंप करता है ।
यह प्रश्न समाधान के मुकाबले ज्यादा राय हो सकता है, लेकिन मैं किसी भी संभावित गठिया से अवगत होना चाहता हूं जिसे मुझे पता नहीं है। मैं भविष्य में MySQL से PostgreSQL में माइग्रेट करना चुन सकता हूं, और मैं उन विशेषज्ञों से कुछ सलाह भी उपयोग कर सकता हूं, उदा। यदि PostgreSQL इन मामलों को अलग करता है जैसे एमएस-एसक्यूएल करता है। यदि मैं गलत गलती करता हूं तो मैं गलत हूं अगर मैं गलत हूं।
मुझे यकीन नहीं है कि आप जानते हैं, लेकिन MySQL में आप एक शून्य मान के लिए एक डिफ़ॉल्ट मान (जो शून्य नहीं है) सेट कर सकते हैं। यदि आप डालने के दौरान उस कॉलम के लिए मान निर्दिष्ट करने में विफल रहते हैं, तो कॉलम का डिफ़ॉल्ट मान होता है। आप यह भी स्पष्ट रूप से निर्दिष्ट कर सकते हैं कि शून्य को डालना है, जिस स्थिति में कॉलम शून्य है। उदाहरण के लिए, आप कॉलम को 'SMALLINT DEFAULT 3' के रूप में निर्दिष्ट कर सकते हैं। फिर यदि आप स्पष्ट रूप से एक गैर-शून्य पूर्णांक मान डालते हैं, तो यह उस मान को संग्रहीत करता है; यदि आप स्पष्ट रूप से शून्य डालते हैं, तो यह शून्य को संग्रहीत करता है; और यदि आप डालने पर मान निर्दिष्ट नहीं करते हैं, तो यह 3, डिफ़ॉल्ट मान संग्रहीत करता है। – Hammerite
हाँ! मैं केवल कॉलम के बारे में चिंतित हूं जिनके पास शून्य का डिफ़ॉल्ट मान है। –
शायद यह प्रश्न [programmers.se] के लिए अधिक उपयुक्त है? – eggyal