MySQL में DEFAULT NULL के साथ कॉलम डिफ़ॉल्ट सेट करना
MySQL में, आप DEFAULT NULL क्लॉज का उपयोग करके किसी कॉलम के लिए स्पष्ट रूप से NULL को डिफ़ॉल्ट मान के रूप में सेट कर सकते हैं। यह तब उपयोगी होता है जब कोई मान प्रदान नहीं किया जाता है तो कॉलम वैकल्पिक होना चाहिए।
उदाहरण: वैकल्पिक कॉलम वाली छात्र टेबल
mysql> CREATE TABLE DemoTable1440 (
-> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName VARCHAR(20) DEFAULT NULL,
-> StudentAge INT DEFAULT NULL
-> );
Query OK, 0 rows affected (0.55 sec)
mysql> INSERT INTO DemoTable1440 (StudentName, StudentAge) VALUES ('Chris', 21);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable1440 VALUES ();
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable1440 (StudentName) VALUES ('David');
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable1440 (StudentAge) VALUES (24);
Query OK, 1 row affected (0.09 sec)
mysql> SELECT * FROM DemoTable1440;
+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
| 1 | Chris | 21 |
| 2 | NULL | NULL |
| 3 | David | NULL |
| 4 | NULL | 24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)
मुख्य बिंदु
- DEFAULT NULL स्पष्ट रूप से NULL को डिफ़ॉल्ट के रूप में सेट करता है (कई संस्करणों में डिफ़ॉल्ट व्यवहार)
INSERT VALUES()सभी कॉलम के लिए डिफ़ॉल्ट मान डालता है- आंशिक INSERT केवल निर्दिष्ट कॉलम सेट करता है; अन्य को डिफ़ॉल्ट मिलता है
NOT NULLकॉलम के लिए डिफ़ॉल्ट आवश्यक है (MySQL 8.0+ सख्त मोड)
अन्य डिफ़ॉल्ट उदाहरण
-- स्ट्रिंग डिफ़ॉल्ट CREATE TABLE t1 (name VARCHAR(50) DEFAULT 'Unknown'); -- संख्यात्मक डिफ़ॉल्ट CREATE TABLE t2 (score INT DEFAULT 0); -- दिनांक डिफ़ॉल्ट CREATE TABLE t3 (created DATE DEFAULT (CURDATE())); -- फ़ंक्शन डिफ़ॉल्ट (MySQL 8.0.13+) CREATE TABLE t4 (id INT DEFAULT (UUID()));
DEFAULT NULL बनाम कोई DEFAULT नहीं
| परिदृश्य | DEFAULT NULL | कोई DEFAULT नहीं |
|---|---|---|
| सख्त मोड, मान लापता | NULL डाला गया | त्रुटि (यदि NOT NULL) |
| गैर-सख्त मोड, मान लापता | NULL डाला गया | NULL डाला गया (चेतावनी के साथ) |
| इरादा स्पष्टता | उच्च - स्पष्ट इरादा | कम - अंतर्निहित व्यवहार |