SQLSTATE[HY000]: General error: 1364 Field ‘xxx’ doesn't have a default value 解决办法

数据库问题

今天使用安装某网盘程序时出现如下报错:

SQLSTATE[HY000]: General error: 1364 Field 'post_excerpt' doesn't have a default value

翻译:
SQLSTATE[HY000]: 常规错误:1364字段'post_excerpt'没有默认值

只要是这类问题都可以用此办法解决。
SQLSTATE[HY000]: General error: 1364 Field 'xxxxxx' doesn't have a default value

处理方式

解决这个问题有两个办法,可能每个人的场景不一样,肯定会有其中一个办法适合你的。为了方便,我是推荐大家用第二种办法,如果你的字段不太多,就用第一种方法吧!

注意:改了mysql配置文件后,一定要重启mysql。

第一种方法:
既然报错说某字段没有默认值,我直接去相应的数据库,数据表直接设置一个默认值不就OK了吗?

第二种方法:
有时候修改了字段的默认值后此问题根本没有解决,我们就需要修改mysql的配置文件,原因是由于mysql的高版本配置导致的。windows修改my.ini,linux用户修改my.cnf(/etc/my.cnf)

把默认值
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

修改成下面的即可解决:

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
或者
sql-mode="NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES"
修改完后我们记得重启mysql

如下图所示:
SQLSTATE[HY000]: General error: 1364 Field ‘xxx’ doesn't have a default value 解决办法插图

阅读剩余
THE END
诺言博客