----------------------------+
| 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)
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” 博客