यदि आप NOT NULL
निर्दिष्ट नहीं करते हैं, तो MySQL मान को NULL होने देगा कॉलम परिभाषा में।
यहाँ एक त्वरित परीक्षण है:
mysql> create table test (id serial, field ENUM('Y','N') DEFAULT 'N');
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO test (field) VALUES ('Y');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO test (field) VALUES ('N');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO test () VALUES ();
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO test (field) VALUES (NULL);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO test (field) VALUES ('Invalid');
Query OK, 1 row affected, 1 warning (0.01 sec)
mysql> show warnings;
+---------+------+--------------------------------------------+
| Level | Code | Message |
+---------+------+--------------------------------------------+
| Warning | 1265 | Data truncated for column 'field' at row 1 |
+---------+------+--------------------------------------------+
1 row in set (0.00 sec)
mysql> select * from test;
+----+-------+
| id | field |
+----+-------+
| 1 | Y |
| 2 | N |
| 3 | N |
| 4 | NULL |
| 5 | |
+----+-------+
5 rows in set (0.00 sec)
तो MySQL डिफ़ॉल्ट मान का सम्मान करता है, लेकिन NULLs को भी अनुमति देता है। (दिलचस्प बात यह है कि यह अमान्य मानों को छोटा कर देगा और रिक्त स्ट्रिंग को भी अनुमति देगा, लेकिन यह एक अलग मुद्दा है)