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去除掉,這樣修改的話可能會造成安全問題,不建議這種修改。