MySQL之Field \'email\' doesn\'t have a default value問題所在,簡單解決辦法
2016-11-28 17:12:09
11925
MySQL之Field 'email' doesn't have a default value問題所在,簡單解決辦法
MySQL在出現(xiàn)這個Field xxx doesn't have a default value錯誤的原因是:我們設置了該字段為非空,但是我們沒有設置默認值照成的。
比如我們創(chuàng)建一個表:
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 ''
為什么我們會出現(xiàn)Field 'email' doesn't have a default value這樣的錯誤呢,估計是你使用的phpmyadmin來創(chuàng)建的表,phpmyadmin創(chuàng)建表時,不能指定空的默認值,所以很不爽了,所以,不要用phpmyadmin來建表。