หากโหมด 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