string(81) "SQLSTATE[HY000]: General error: 1364 Fi

时间:2021-12-03 01:10:39

mysql版本是5.7.26,在插入数据时报错:

string(81) "SQLSTATE[HY000]: General error: 1364 Field ‘content‘ doesn‘t have a default value"

SQL插入语句:

 INSERT INTO `ent_news` (`title` , `small_title` , `catid` , `description` , `source_type` , `image`) VALUES (qq , ‘‘ , 101 , ‘‘ , 0 , ‘‘)

通过:

 show create table ent_news;

分析建表语句,发现content字段是 NOT NULL,截图如下:

string(81) "SQLSTATE[HY000]: General error: 1364 Fi

 

 mysql规定,对于 BLOB, TEXT, GEOMETRY 和 JSON,这几种数据类型是不允许有默认值的,本例中content字段并未设置默认值,经过分析,是否是NOT NULL的原因,于是将content字段设置为NULL

alter table ent_news modify column content text null after image;

表结构现修改为:

string(81) "SQLSTATE[HY000]: General error: 1364 Fi

 

 再次执行插入语句,插入成功。

还有另外一种解决办法就是修改mysql配置文件,将sql_mode中STRICT_TRANS_TABLES去除掉,这样修改的话可能会造成安全问题,不建议这种修改。

string(81) "SQLSTATE[HY000]: General error: 1364 Fi