MySQL之Field 'email' doesn't have a default value问题

举报
lxw1844912514 发表于 2022/03/27 01:45:14 2022/03/27
【摘要】 MySQL在出现这个Field xxx doesn't have a default value错误的原因是:我们设置了该字段为非空,但是我们没有设置默认值照成的。 比如我们创建一个表: CREATE TABLE IF NOT EXISTS `blog_user` (   `userid` smallint(5) uns...

MySQL在出现这个Field xxx doesn't have a default value错误的原因是:我们设置了该字段为非空,但是我们没有设置默认值照成的。


比如我们创建一个表:


CREATE TABLE IF NOT EXISTS `blog_user` (
  `userid` smallint(5) unsigned NOT NULL auto_increment,
  `username` varchar(20) NOT NULL default '',
  `passwd` char(32) NOT NULL default '',
  `email` varchar(30) NOT NULL,
  PRIMARY KEY  (`userid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


我们对email字段设置了not null 但是没有设置默认值 default,所以我们在插入的时候:
INSERT INTO blog_user(username,passwd) VALUES('tomener',md5(123456));


会报如下错误:
Field 'email' doesn't have a default value


解决办法就是设置一个默认值,比如: `email` varchar(30) NOT NULL DEFAULT ''


很简单吧,就是加一个DEFAULT ''




    为什么我们会出现Field 'email' doesn't have a default value这样的错误呢,估计是你使用的phpmyadmin来创建的表,phpmyadmin创建表时,不能指定空的默认值,所以很不爽了,所以,不要用phpmyadmin来建表,推荐使用MySQLWorkbench

文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/lxw1844912514/article/details/100028368

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。