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,截图如下:
mysql规定,对于 BLOB, TEXT, GEOMETRY 和 JSON,这几种数据类型是不允许有默认值的,本例中content字段并未设置默认值,经过分析,是否是NOT NULL的原因,于是将content字段设置为NULL
alter table ent_news modify column content text null after image;
表结构现修改为:
再次执行插入语句,插入成功。
还有另外一种解决办法就是修改mysql配置文件,将sql_mode中STRICT_TRANS_TABLES去除掉,这样修改的话可能会造成安全问题,不建议这种修改。
string(81) "SQLSTATE[HY000]: General error: 1364 Field 'content' doesn't have a default value"
原文地址:https://www.cnblogs.com/goujian/p/11701287.html
时间: 2024-10-13 05:50:37