MySQL DB SQL_MODE

MySQL รุ่นใหม่ๆ เช่น 5.7 หรือ MariaDB 10.3 มีความ strict เรื่อง query มากขึ้น ซึ่งถ้าโค้ดเก่าเรายังไม่รองรับก็ใช้วิธีแก้แบบกึ่งบาปไปก่อนโดยใส่ใน my.cnf ประมาณนี้

#sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
sql_mode                = NO_ENGINE_SUBSTITUTION

แก้แล้วต้อง restart ทีนึง ทดสอบโดยการ SELECT ขึ้นมาดู

mysql> select  @@SQL_MODE, @@GLOBAL.SQL_MODE;
+------------------------+------------------------+
| @@SQL_MODE | @@GLOBAL.SQL_MODE |
+------------------------+------------------------+
| NO_ENGINE_SUBSTITUTION | NO_ENGINE_SUBSTITUTION |
+------------------------+------------------------+
1 row in set (0.00 sec)

Leave a comment