MySQL之Field \'email\' doesn\'t have a default value問題所在,簡單解決辦法
MySQL之Field 'email' doesn't have a default value問題所在,簡單解決辦法
MySQL在出現(xiàn)這個(gè)Field xxx doesn't have a default value錯(cuò)誤的原因是:我們?cè)O(shè)置了該字段為非空,但是我們沒有設(shè)置默認(rèn)值照成的。
比如我們創(chuàng)建一個(gè)表:
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;
我們對(duì)email字段設(shè)置了not null 但是沒有設(shè)置默認(rèn)值 default,所以我們?cè)诓迦氲臅r(shí)候:
INSERT INTO blog_user(username,passwd) VALUES('tomener',md5(123456));
會(huì)報(bào)如下錯(cuò)誤:
Field 'email' doesn't have a default value
解決辦法就是設(shè)置一個(gè)默認(rèn)值,比如? `email` varchar(30) NOT NULL DEFAULT ''
很簡單吧,就是加一個(gè)DEFAULT ''
為什么我們會(huì)出現(xiàn)Field 'email' doesn't have a default value這樣的錯(cuò)誤呢,估計(jì)是你使用的phpmyadmin來創(chuàng)建的表,phpmyadmin創(chuàng)建表時(shí),不能指定空的默認(rèn)值,所以很不爽了,所以,不要用phpmyadmin來建表。