MySQL केवल गणना के लिए खाली मान स्वीकार करता है यदि SQL मोड TRADITIONAL, STRICT_TRANS_TABLES या STRICT_ALL_TABLES के रूप में सेट नहीं है। अन्यथा, MySQL खाली मान स्वीकार नहीं करेगा और एक त्रुटि फेंकता है। जैसा कि हम जानते हैं कि प्रत्येक एन्यूमरेशन वैल्यू में इंडेक्स वैल्यू होती है, खाली वैल्यू में 0 इंडेक्स वैल्यू होगी।
उदाहरण
mysql> SET SQL_MODE ='Traditional'; Query OK, 0 rows affected (0.00 sec) mysql> Insert into result(id, name,grade) values(100, 'Raman', ''); ERROR 1265 (01000): Data truncated for column 'Grade' at row 1
अब, SQL मोड बदलने के बाद हम खाली स्ट्रिंग को इस प्रकार सम्मिलित करने में सक्षम होंगे -
mysql> Set SQL_MODE =''; Query OK, 0 rows affected (0.00 sec) mysql> Insert into result(id, name, grade) values(100, 'Raman', ''); Query OK, 1 row affected, 1 warning (0.04 sec) mysql> select * from result; +-----+-------+-------+ | Id | Name | Grade | +-----+-------+-------+ | 100 | Raman | | +-----+-------+-------+ 1 row in set (0.00 sec)
MySQL केवल गणना के लिए NULL मान स्वीकार करता है यदि हम ENUM कॉलम के साथ NOT NULL निर्दिष्ट नहीं करते हैं। जैसा कि हम जानते हैं कि प्रत्येक एन्यूमरेशन वैल्यू का एक इंडेक्स वैल्यू होता है, NULL का इंडेक्स वैल्यू NULL होता है।
उदाहरण
mysql> Insert into result(id, name, grade) values(101, 'Rahul', NULL); Query OK, 1 row affected (0.04 sec)
उपरोक्त क्वेरी में NULL मान सम्मिलित होगा क्योंकि हम ENUM कॉलम घोषणा में NOT NULL निर्दिष्ट नहीं करते हैं।
mysql> select * from result; +-----+-------+-------+ | Id | Name | Grade | +-----+-------+-------+ | 100 | Raman | | | 101 | Rahul | NULL | +-----+-------+-------+ 2 rows in set (0.00 sec)