MySQL में DEFAULT NULL की आवश्यकता नहीं - डिफ़ॉल्ट रूप से NULL होता है
MySQL में, जब किसी कॉलम के लिए DEFAULT मान निर्दिष्ट नहीं किया जाता और वह NOT NULL नहीं है, तो उसका डिफ़ॉल्ट मान स्वचालित रूप से NULL होता है। DEFAULT NULL स्पष्ट रूप से लिखना वैकल्पिक है।
व्यावहारिक उदाहरण
DEFAULT NULL के बिना तालिका बनाना
mysql> CREATE TABLE DemoTable (
FirstName VARCHAR(100)
);
रिकॉर्ड डालना (मान के बिना भी)
mysql> INSERT INTO DemoTable VALUES('Chris');
mysql> INSERT INTO DemoTable VALUES(); -- कोई मान नहीं
mysql> INSERT INTO DemoTable VALUES(); -- कोई मान नहीं
mysql> INSERT INTO DemoTable VALUES('David');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-----------+ | FirstName | +-----------+ | Chris | | NULL | | NULL | | David | +-----------+
नियम सारांश
| कॉलम परिभाषा | डिफ़ॉल्ट मान |
|---|---|
col INT | NULL |
col INT DEFAULT NULL | NULL (स्पष्ट) |
col INT NOT NULL | कोई डिफ़ॉल्ट नहीं (INSERT में मान आवश्यक) |
col INT NOT NULL DEFAULT 0 | 0 |
col INT DEFAULT 5 | 5 |
स्पष्ट DEFAULT NULL कब उपयोगी
- डॉक्यूमेंटेशन/स्पष्टता के लिए (इरादा दिखाता है)
- स्कीमा तुलना टूल्स के लिए
- माइग्रेशन स्क्रिप्ट्स में स्पष्टता के लिए
NOT NULL कॉलम के लिए डिफ़ॉल्ट
MySQL 8.0.13 से पहले: NOT NULL कॉलम के लिए डिफ़ॉल्ट मान डेटा प्रकार का "शून्य" मान होता है (0, '', '0000-00-00', आदि)।
MySQL 8.0.13+: NOT NULL बिना डिफ़ॉल्ट के INSERT पर त्रुटि देता है (strict mode में)।
सिफारिश: इरादे को स्पष्ट करने के लिए हमेशा DEFAULT मान निर्दिष्ट करें, भले ही वह NULL हो।