MySQL 提示 Field * doesn't have a default value 的解决办法
解决办法
在 MySQL 5.7 以上版本中,启用了严格模式。
在配置文件中 /etc/mysql/my.cnf 中找到:
sql-model=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
修改为:
sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
然后重启 MySQL
STRICT_TRANS_TABLES 存储引擎启用严格模式,非法数据值被拒绝
出现此问题的原因
在 MySQL 5.0.2 以前,MySQL 对非法值检查并不严厉,而且为了数据输入还会强制将他们变为合法值。
在 MySQL 5.0.2 以后的版本中,保留了以前的默认行为,但你可以为不良值选择更传统的处理方法,从而使得服务器能够拒绝并放弃出现不良值的语句。
严格模式
如果未使用严格模式,下面的情况是合法的: