-------------------------------------- ----------------------------+ | Variable_name | Value | +---------------+--------------------------------------------------------------- ----------------------------+ | sql_mode | STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_ USER,NO_ENGINE_SUBSTITUTION | +---------------+--------------------------------------------------------------- ----------------------------+ 1 row in set (0.00 sec) mysql> select 1/0; +------+ | 1/0 | +------+ | NULL | +------+ 1 row in set, 1 warning (0.00 sec) 我们看到了1 warning,我们在看下这个warning: mysql> show warnings; +-------+------+---------------+ | Level | Code | Message | +-------+------+---------------+ | Error | 1365 | Division by 0 | +-------+------+---------------+ 1 row in set (0.00 sec) mysql> exit Bye 我们把sql_mode 中去掉ERROR_FOR_DIVISION_BY_ZERO参数时,重启mysql,试试看: C:\Documents and Settings\Administrator>net stop mysql MySQL 服务正在停止. MySQL 服务已成功停止。 C:\Documents and Settings\Administrator>net start mysql MySQL 服务已经启动成功。 mysql> select 1/0; +------+ | 1/0 | +------+ | NULL | +------+ 1 row in set (0.00 sec) mysql> show warnings; Empty set (0.02 sec) 这时warnings的内容为空。 问题到这里,读者也知道这是为什么了。有空再试试别的数据库,看看也是不是这样 本文出自 “无聊pp” 博客
|