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