mysql设置text字段为not null,并且没有默认值,插入报错:doesn't have a default value_铁柱同学的博客-CSDN博客_字段没有默认值


本站和网页 https://blog.csdn.net/LJFPHP/article/details/81939189 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

mysql设置text字段为not null,并且没有默认值,插入报错:doesn't have a default value_铁柱同学的博客-CSDN博客_字段没有默认值
mysql设置text字段为not null,并且没有默认值,插入报错:doesn't have a default value
铁柱同学
于 2018-08-22 10:17:57 发布
18752
收藏
分类专栏:
mysql
文章标签:
mysql
text字段类型
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/LJFPHP/article/details/81939189
版权
mysql
专栏收录该内容
61 篇文章
17 订阅
订阅专栏
一、问题描述
在往数据库写入数据的时候,报错:
'字段名' doesn't have a default value
      本来这个错误是经常见到的,无非就是字段没有设置默认值造成的。奇怪的是,我这边报错的字段,其类型是text类型。众所周知的,text类型是不能有默认值的。如此一来就有了矛盾,text类型的字段明明不能有默认值,那么为什么还会给我报错,提示缺少默认值呢?
二、问题所在
1、查看字段类型
通过phpmyadmin查看数据表的字段结构,发现text字段在创建的时候,语法为:
//创建字段abstract为text类型,默认为not null
ALTER TABLE `表名` ADD COLUMN `abstract` text not null after `content`;
      这个创建语句乍一看没有问题,但是如果text类型既没有默认值,也不能为null的话,那么插入的时候,肯定是会出现问题的。
2、解决方案
按照上面的推测逻辑,重新修改字段属性:
//这里修改abstart字段的类型为text类型,去掉了not null
ALTER TABLE `表名` modify COLUMN `abstract` text;
      然后进行测试,发现写入数据成功。此时查看phpmyadmin的数据表结构,发现此时字段的默认值为null了。果然是not null的问题,问题是,创建数据表的时候,尽量设置字段为not null已经成为共识。。虽然解决了问题,但博主还是不太理解原理是什么。
关于mysql默认值和设置not null的问题,参考博客: 关于mysql设置varchar 字段的默认值’'和null的区别,以及varchar和char的区别
三、为什么会报错
1、第一个原因
通过一顿百度,终于在百度知道上看到这句话:
如果是not null的话,那你就必须插入一个值,你不插入值的话,就会调用默认值。 如果这两个都没有的话,就会报错了。
      这个意思就和咱们最开始推测的差不多,字段类型既是 not null,而且还没默认值,那么在写入数据的时候肯定是有问题的。就像我们平时看到的,在创建字段并且不设置默认值的时候,mysql都会默认给字段加上默认值null。
2、第二个原因
这个原因就是数据库的严格模式的问题。在mysql 5.7之后,数据库默认都是采用严格模式。
关于严格模式的解释: mysql给字段设置默认值,以及mysql的严格模式
      关于严格模式这个,我并没有测试,个人感觉还是建表时候不够严谨造成的问题。关于设置字段默认值和设置not null方面不熟悉造成的。
四、总结
**1、**如果字段为int 或者varchar类型,那么要设置字段类型为 not null 并且设置default
**2、**如果字段为text,则既不需要设置not null,也不需要手动设置default 的值
**3、**关于text字段不能有默认值的问题,这个只针对于手动增加的default属性,如果创建字段不设置default的话,mysql会默认加上一个默认值Null
end
铁柱同学
关注
关注
点赞
收藏
打赏
评论
mysql设置text字段为not null,并且没有默认值,插入报错:doesn't have a default value
一、问题描述在往数据库写入数据的时候,报错:'字段名' doesn't have a default value      本来这个错误是经常见到的,无非就是字段没有设置默认值造成的。奇怪的是,我这边报错的字段,其类型是text类型。众所周知的,text类型是不能有默认值的。如此一来就有了矛盾,text类型的字段明明不能有默认...
复制链接
扫一扫
专栏目录
数据库-mysql的text属性
lidashent的博客
09-17
1196
mysql的text属性
mysql数据库doesn‘t have a default value
chuziyan的博客
10-20
1974
1.网上很多说法是这个字段不能为空,改成能为空就行了
2.如果不是这种情况,那就是前端传值为null,你set进去的时候会null,而不是空
然鹅,数据库只能塞"“和"null”,而你插入的值为null就会报这个错了,所以一定要判断非空非null
...
评论 5
您还未登录,请先
登录
后发表或查看评论
Field 'id' doesn't have a default value 这个错误完美解决
w423462732的博客
05-10
2万+
1.Field 'id' doesn't have a default value
2.Field 'id' doesn't have a default value
程序启动的时候出现这个是因为一个非常幼稚的错误,认真观察自己的数据库有没有主键和自增加了没有!!!!!!!!!!!!!!!!!
本博主遇到这个问题的时候百度了一下
解决方法一:
打开my.ini,查找
sql-mode=
java.sql.SQLException:字段 没有默认值
YBSDWY的博客
05-26
716
新增数据sql报错
java.sql.SQLException:Field ‘*’ doesn’t have a default value
控制台报错
java.sql.SQLException:字段“ ***”没有默认值
检查了一下没有默认值???
发现是数据库字段没有设置自增导致。
Mysql Field * doesn't have a default value解决方法
LAMP随记
11-17
2847
MySQL 5中,出现错误提示:<br />Field 'id' doesn't have a default value<br /><br />解决方法一:<br /><br />打开my.ini,查找<br />sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"<br /><br />修改为<br /><br />sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITU
Field 'id' doesn't have a default value 错误的解决办法
qq_39086076的博客
05-31
13万+
1.Field 'id' doesn't have a default value如果你在写web项目的时候,然后在写添加的方法的时候,出现 Field 'id' doesn't have a default value 这个错误,那就什么都不用看 直接找到你的数据库,然后打开设计表,看下面自增递增是否勾选上了,如果没有勾上再去执行 就可以了。(这个问题困扰了我半天时间)...
如何解决Field 'id' doesn't have a default value 问题
热门推荐
汤姆lazy的CSDN博客
06-11
13万+
其主要原因是因为mysql的中没有将主键设置为自增,所以在增加元素时获取生成主键时出现异常
那么问题就转变成了如何将id属性设置为主键自增
首先打开Mysql workbench,找到对应所要设置的表:
点击表的扳手符号 出现该表的设置信息页面:
选中所要设立自增属性的AI,点击应用即可完成设置。
重新运行,即可实现增加数据的操作
另外分享一个Mysql workbench的汉化教程...
mysql doesnt have a default value_导入mysql数据的时候提示Field * doesn't have a default value解决方法...
weixin_28727975的博客
01-26
1649
项目使用django+mysql在linux中使用的是mysql5.7,导入数据提示:Field * doesn't have a default value想要解决问题就需要知道在mysql5.7中,启用了严格模式:在配置文件中 /etc/mysql/my.cnf 中找到:sql-model=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SU...
MySQL之Field‘***’doesn’t have a default value错误解决办法
_花野
02-14
2485
MySQL之Field‘***’doesn’t have a default value错误解决办法
手上负责的一个项目在用户注册的时候会报错,找了下原因是因为字段没有默认值,我本地环境 mysql5.5 没有问题,test 环境是mysql5.6,通过查资料知道了原来跟 my.ini 的配置有关。
解决方案:
打开 my.ini,查找
sql-mode=“STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
去掉 STRICT_
Field ‘xxxx‘ doesn‘t have a default value的解决方案
m0_56293508的博客
08-14
8042
Field ’ xxx ’ doesn’t have a default value
1、在数据库的表中添加数据时,出现这样一句话。
2、其主要原因是因为mysql的中没有将主键设置为自增,所以在增加元素时获取生成主键时出现异常。
3、打开Navicat 找到增加元素时的表,将id属性设置为主键自增
4、再次输入
INSERT INTO hodr_customer (customer_id,customer_number,customer_name)VALUES (001,3001,“客户1”);
php sql 字段不能为空值,关于php:Sudden SQL问题-一般错误:1364字段没有默认值
weixin_28797919的博客
03-21
241
因此,我有一个服务器列表作为网站-无处不在-当您尝试添加新服务器时会出现错误-Array ( [success] => [error-codes] => Array ( [0] =>missing-input-secret ) ) Unhandled Exception. SQLSTATE[HY000]:General error: 1364 Field 'ServerVote...
mysql没有mysqlid_mysql-字段'id'没有默认值?
weixin_33583401的博客
01-19
1361
mysql-字段'id'没有默认值?我是这个SQL的新手。 我已经在更大的程序中看到了类似的问题,目前还无法理解。 我正在建立一个数据库,用于在我的首页中使用的纸牌游戏。我在Windows上使用MySQL Workbench。 我得到的错误是:错误代码:1364。字段“ id”没有默认值CREATE TABLE card_games(nafnleiks varchar(50),leiklysing...
MySql默认属性设置字段插入null没有默认显示的原因
無言的博客
11-24
1647
我将mysql的数据表的某个字段设置了默认值为1,当向该表插入数据的时候该字段的值不是默认值,而是null。
原因:
对数据库的操作我使用了持久化工具mybatis,插入数据的时候插入的是整个实体,直接使用的是持久层的insert(实体对象)方法插入的数据
这样就会出现一个问题,当实体对象中某个属性值为空时,对应的数据库的字段就会插入null值,而默认值是插入时不指定该字段,该字段的值才会取默认值。
所以这里我是向设置了默认值的字段插入了null,才导致出现上述错误。
解决方法:
这时候我改用inse
mysql默认值写入报错_mysql设置text字段为not null,并且没有默认值,插入报错:doesn't have a default value...
weixin_31032795的博客
02-11
1198
一、问题描述在往数据库写入数据的时候,报错:'字段名' doesn't have a default value本来这个错误是经常见到的,无非就是字段没有设置默认值造成的。奇怪的是,我这边报错的字段,其类型是text类型。众所周知的,text类型是不能有默认值的。如此一来就有了矛盾,text类型的字段明明不能有默认值,那么为什么还会给我报错,提示缺少默认值呢?二、问题所在1、查看字段类型通过php...
字段“id”没有默认值
最新发布
weixin_63830396的博客
08-11
413
接口报错字段“id”没有默认值时,可以看看你的数据库字段id是否有自主递增。
mysql text NOT NULL DEFAULT
Baijinwen的专栏
11-15
9198
状况:
Create Table的时候,提示 text NOT NULL DEFAULT '' 有错,意思是不允许有默认值。。。
原因:MYSQL5.x是不允许BLOB/TEXT类型的字段拥有默认值的,在‘strict mode’严格模式会报错,如果改为非严格模式,则创建通过。
如果希望继续创建成功,则可修改模式: 在mysql安装根目录下的my.ini文件,将sql-mode="STRIC
Field 'id' doesn't have a default value问题解决方法
huaweitman的专栏
09-03
13万+
Field 'id' doesn't have a default value问题解决方法
mysql text not null_mysql设置text字段为not null,并且没有默认值,插入报错:doesn't have a default value...
weixin_33751984的博客
01-19
1228
一、问题描述在往数据库写入数据的时候,报错:'字段名' doesn't have a default value本来这个错误是经常见到的,无非就是字段没有设置默认值造成的。奇怪的是,我这边报错的字段,其类型是text类型。众所周知的,text类型是不能有默认值的。如此一来就有了矛盾,text类型的字段明明不能有默认值,那么为什么还会给我报错,提示缺少默认值呢?二、问题所在1、...
MySQL建表的约束条件,浅谈not null 和 default的关系
静水流深
04-11
1840
MySQL在建表时,需要有字段名称、字段类型和约束条件,其中字段名称和字段类型是必填的,约束条件是选填的,约束条件主要有primary key、unique、not null、default等, 一个完整的建表语句如下:
create table employees( 工号 varchar(4) primary key, 姓名 varchar(10) not null , 年龄 int defalut 18);
约束条件分别为:工号作为主键,姓名非空,年龄默认为18,建完表后,可以向表里插入输入,例如:
MySQL中出现Field ' ' doesn't have a default value
任何问题都能在Stack Overflow找到答案!
05-30
1万+
出现该错误是因为在表中设置了该字段为Not Null,又没有设置该字段的默认值。
解决方法为:在表中设置为可空,或设置默认值。
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:编程工作室
设计师:CSDN官方博客
返回首页
铁柱同学
CSDN认证博客专家
CSDN认证企业博客
码龄6年
PHP领域优质创作者
396
原创
4857
周排名
319
总排名
273万+
访问
等级
2万+
积分
9261
粉丝
2247
获赞
1959
评论
3224
收藏
私信
关注
热门文章
windows下CMD常用命令
145565
vue中监听input框获取焦点,失去焦点的问题
98988
mysql的in查询是可以用到索引吗?亲测详解
58625
微信小程序之页面样式以及背景图片显示问题
56157
input框的value明明有值,但是不显示问题
52480
分类专栏
c++
5篇
golang
9篇
系统架构
1篇
从了解区块链到发布智能合约
11篇
react native基础讲解
25篇
mysql
61篇
python
9篇
linux
68篇
php日常bug
87篇
碎碎念
35篇
转载
13篇
微信公众号
4篇
React Native
28篇
JS
29篇
微信小程序
15篇
nginx
14篇
git
17篇
svn
1篇
物联网
5篇
laravel
20篇
shell脚本
3篇
linux之debian
4篇
linux之ubuntu
5篇
redis
4篇
数据结构
4篇
区块链
12篇
Vue.js
3篇
Yii
3篇
Elasticsearch
16篇
最新评论
2021中大厂php+go面试题(2)
铁柱同学:
去滴滴了
2021中大厂php+go面试题(2)
Lose Yourself.:
你现在在哪里啊
apache报错:Internal Server Error:The server encountered an internal error or misconfiguration and was
铁柱同学:
很久没写php了,我记得是在项目根目录,apache自动新建的貌似
虚拟机的ubunt系统在登录界面循环往复,登录不进去问题
铁柱同学:
我怀疑你文件路径错误了,或者你修改的是其他环境变量文件,你编辑的是另一个,恰巧另一个文件不存在,vim的时候相当于新建了个空白文件
apache报错:Internal Server Error:The server encountered an internal error or misconfiguration and was
欣坚强:
请问这个.htaccess文件在哪里找啊?我找不到啊
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
要学的东西太多了怎么办
c++传输二进制数据
主流编程语言的底层实现是什么以及gcc,clang,llvm等编译器的区别
2022年16篇
2021年6篇
2020年20篇
2019年105篇
2018年131篇
2017年221篇
目录
目录
分类专栏
c++
5篇
golang
9篇
系统架构
1篇
从了解区块链到发布智能合约
11篇
react native基础讲解
25篇
mysql
61篇
python
9篇
linux
68篇
php日常bug
87篇
碎碎念
35篇
转载
13篇
微信公众号
4篇
React Native
28篇
JS
29篇
微信小程序
15篇
nginx
14篇
git
17篇
svn
1篇
物联网
5篇
laravel
20篇
shell脚本
3篇
linux之debian
4篇
linux之ubuntu
5篇
redis
4篇
数据结构
4篇
区块链
12篇
Vue.js
3篇
Yii
3篇
Elasticsearch
16篇
目录
评论 5
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
铁柱同学
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值