新建用户表的时候提示这个Invalid default value for 'sex' 何解?

-- 用户表
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
);

easy东
浏览 26344回答 5
5回答

慕课女神的哥哥的大叔

mysql中enum类型的字段不能显式设置默认值,默认为第一个值,比如你写的‘男’。若要把默认设置成保密,可以把保密放在第一个位置。另外,最好建表的时候设置下表的默认编码。比如utf8.修改后的表结构为。CREATE TABLE `imooc_user`( `id` int(11) unsigned not null auto_increment primary key, `username` varchar(20) not null unique, `password` char(32) not null, `sex` enum("保密", "男","女") not null, `face` varchar(50) not null, `regTime` int unsigned not null )engine=innodb default charset=utf8;

八万

#会员(用户)表:imooc_userDROP TABLE IF EXISTS `imooc_user`;CREATE TABLE `imooc_user`(    `id` INT UNSIGNED NOT NULL AUTO_INCREMENT KEY,    `username` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '会员名称',    `password` VARCHAR(32) NOT NULL DEFAULT '0' COMMENT '密码',    `sex` ENUM("男","女","保密") NOT NULL DEFAULT '男' COMMENT '性别',    `email` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '邮箱',    `face` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '用户头像',    `regTime` INT UNSIGNED NOT NULL DEFAULT '0' COMMENT '注册时间',    `activeFlag` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '是否激活:0否,1激活')ENGINE=MYISAM DEFAULT CHARSET='gbk';

续杯君

DROP TABLE IF EXISTS `shop_user`;CREATE TABLE `shop_user`( `id` int unsigned auto_increment key, `username` varchar(20) not null unique, `password` char(32) not null, `sex` enum('保密','男','女') not null DEFAULT '保密', `email` varchar(50) not null, `face` varchar(255) not null, `regTime` int unsigned not null);

熊麻子

在phpmyadmin里面试了一下,还是不行。
打开App,查看更多内容
随时随地看视频慕课网APP