老师,我定义了用户的性别`sex` enum("男","女","保密")not null default"保密",,为什么写入数据库时一直提示ERROR 1067 (42000): Invalid default value for 'sex' 无效的啊?。是不是要取消保密啊
6 回答
这个这样写就可以了,望采纳
-- User table
DROP TABLE IF EXISTS `imooc_user`;
CREATE TABLE `imooc_user`(
`id` INT UNSIGNED AUTO_INCREMENT KEY ,
`username` VARCHAR(20) NOT NULL UNIQUE ,
`password` CHAR(32) NOT NULL ,
`sex` ENUM('男','女','保密') NOT NULL DEFAULT '保密',
`face` VARCHAR(50) NOT NULL ,
`regTime` INT UNSIGNED NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
设置表的字符集字符集与你的库字符集一致 我的代码如下:
mysql> create table test(
-> id int auto_increment key,
-> name varchar(60) not null,
-> age tinyint not null default 18,
-> sex enum("男","女") not null default '男'
-> );
ERROR 1067 (42000): Invalid default value for 'sex'
mysql> create table test(
-> id int auto_increment key,
-> name varchar(60) not null,
-> age tinyint not null default 18,
-> sex enum("男","女") not null default '男'
-> ) charset='utf8';
Query OK, 0 rows affected (0.38 sec)
举报