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

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

string(81) "SQLSTATE[HY000]: General error: 1364 Field 'content' doesn't have a default value"的相关文章

解决mysql的错误 CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 1300 Invalid utf8 character string: '\xBF\xA5'

报错: CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 1300 Invalid utf8 character string: '\xBF\xA5' 解决方法: $currentPrice = $currentPrice * 1; => $currentPrice 原本是字符串的 数字,导致插入数据库失败. =>所以只要改成 数字 即可. =>字符串的 数字 ,乘以 1 就会变

corresponding SQLSTATE values general error

http://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html B.3 Server Error Codes and Messages MySQL programs have access to several types of error information when the server returns an error. For example, the mysqlclient program displays err

ThinkPHP出现General error: 2006 MySQL server has gone away的解决方法

错误: #13 {main}SQLSTATE[HY000]: General error: 2006 MySQL server has gone awayFILE: \ThinkPHP\Library\Think\Db\Driver.class.php(169) 原因分析: 本次错误提示是在cli模式运行,隔一段时间就会出现,查询资料后发现mysql默认没隔8个小时(2880000秒)就会断开 解决方案,解决方式找了三个 方法1 配置mysql.cnf(windows系统则是my.ini),指定

Field "details" doesn't have a default value

[转载:原文链接http://my.oschina.net/wojibuzhu/blog/511104] MySQL 1364 错误提示:#1364 - Field "details" doesn't have a default value.大概意思是:details字段没有默认的数值:也就是说我们没有为其分配数值,而表中此字段也没有设置默认值.这是MySQL5出来后搞出来的东东,认真看一下my.ini文件中有这样一段: my.ini中相关代码 # Set the SQL mode

Mysql添加用户错误:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value解决方法

添加用户 insert into mysql.user(Host,User,Password) values("localhost","test",password("1234")); 报以下的错误 ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value错误 mysql5.1以上版本,我是在5.6版本上操作的. 错语原因: mysql用户表的中某些字段不能为空,没有默

[mysql]ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value

From: http://m.blog.csdn.net/blog/langkeziju/13511411 我的MySQL版本为5.6.14版本,是二进制包安装的(虽然是二进制包安装的,但是以下问题同样适用于源码安装包安装的MySQL) 今天在我的测试库上添加一个新用户,报错: [[email protected] ~]$ mysql -uroot -p123456 Warning: Using a password on the command line interface can be in

[mysql]ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value 解决方法

在MySQL数据库中的mysql.user表中使用insert语句添加新用户时,可能会出现以下错误: ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value 原因是在my.ini配置文件中有这样一条语句 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 指定了严格模式,为了安全,严格模式禁止通过insert 这种形式直接修改mysql库中的user表进行添加新用户

[mysql] 无法通过insert 创建用户ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value

[mysql]ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value 我的MySQL版本为5.6.14版本,是二进制包安装的(虽然是二进制包安装的,但是以下问题同样适用于源码安装包安装的MySQL) 今天在我的测试库上添加一个新用户,报错: [[email protected] ~]$ mysql -uroot -p123456Warning: Using a password on the command line

mysql创建用户报错ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value

使用如下语句添加用户: insert into mysql.user(Host,User,Password) values ("%","aas","Aas123456"); 错语原因: mysql用户表的中某些字段不能为空,没有默认值,其实是操作错误,mysql添加用户是不能这样直接insert user表的. 解决: create user 'aas'@'%' identified by 'Aas123456'; mysql创建用户报错ERRO