帮助中心 >  技术知识库 >  数据库 >  相关技术支持 >  MySQL之Field \'email\' doesn\'t have a default value问题所在,简单解决办法

MySQL之Field \'email\' doesn\'t have a default value问题所在,简单解决办法

2016-11-28 17:12:09 4073

MySQL之Field 'email' doesn't have a default value问题所在,简单解决办法


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来建表。



提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: