MySQL sql_mode"TRADITIONAL"
,又名“严格模式”,定义为MySQL 文档 https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html as:
将不正确的值插入列时,“给出错误而不是警告”。
以下是如何确保您的 sql_mode 设置为"TRADITIONAL"
.
首先,检查您当前的设置:
mysql
mysql> SELECT @@GLOBAL.sql_mode;
+-------------------+
| @@GLOBAL.sql_mode |
+-------------------+
| |
+-------------------+
1 row in set (0.00 sec)
这返回空白,默认值,这很糟糕:您的 sql_mode 未设置为“传统”。
所以编辑配置文件:
sudo vim /etc/mysql/my.cnf
在标记的部分中添加此行[mysqld]
: sql_mode="TRADITIONAL"
(正如 fancyPants 指出的那样)
然后重新启动服务器:
sudo service mysql restart
然后再次检查:
mysql
mysql> SELECT @@GLOBAL.sql_mode;
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| @@GLOBAL.sql_mode |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
成功!你现在是金色的。