MySQL ยอมรับค่าว่างสำหรับการแจงนับ (ENUM) ก็ต่อเมื่อโหมด SQL ไม่ได้ตั้งค่าเป็น TRADITIONAL, STRICT_TRANS_TABLES หรือ STRICT_ALL_TABLES มิฉะนั้น MySQL จะไม่ยอมรับค่าว่างและโยนข้อผิดพลาด เนื่องจากแต่ละค่า ENUM มีค่าดัชนี ค่าว่างจะมีค่าดัชนีเป็น 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 สำหรับการแจงนับ ก็ต่อเมื่อเราไม่ระบุ NOT NULL กับคอลัมน์ ENUM เนื่องจากแต่ละค่ามีดัชนี ค่าดัชนีของ NULL คือ NULL
ตัวอย่าง
mysql> INSERT INTO result(id, name, grade) VALUES (101, 'Rahul', NULL); Query OK, 1 row affected (0.04 sec) mysql> SELECT * FROM result; +-----+-------+-------+ | Id | Name | Grade | +-----+-------+-------+ | 100 | Raman | | | 101 | Rahul | NULL | +-----+-------+-------+ 2 rows in set (0.00 sec)