Invalid default value for 'addr',为什么会出错呢?
来源:2-5 数据表相关常用操作
qq_小梁labor_0
2018-06-18 02:08:43
mysql> CREATE TABLE IF NOT EXISTS `imooc_user`(`id` INT UNSIGNED AUTO_INCREMENT
KEY COMMENT '用户编号',`username` VARCHAR(20) NOT NULL UNIQUE COMMENT '用户名',`
password` CHAR(32) NOT NULL COMMENT '密码',`email` VARCHAR(50) NOT NULL UNIQUE C
OMMENT '邮箱',`age` TINYINT UNSIGNED NOT NULL DEFAULT 18 COMMENT '年龄',`sex` EN
UM('男','女','保密') NOT NULL DEFAULT '保密' COMMENT '性别',`tel` CHAR(11) NOT N
ULL UNIQUE COMMENT '电话',`addr` VARCHAR(50) NOT NULL DEFAULT '北京' COMMENT '地
址',`card` CHAR(18) NOT NULL UNIQUE COMMENT '身份证号',`married` TINYINT(1) NOT
NULL DEFAULT 0 COMMENT '0代表未结婚,1代表已结婚',`salary` FLOAT(8,2) NOT NULL D
EFAULT 0 COMMENT '薪水')ENGINE=INNODB DEFAULT CHARSET=UTF8;
ERROR 1067 (42000): Invalid default value for 'addr'
2回答
同学用的哪个版本的数据库呢?
我是mysql5.7,运行是没有问题的:
祝学习愉快!
一叶知秋519
2018-06-19
这是帮助你修改后的sql,是可以运行成功的:
CREATE TABLE IF NOT EXISTS `imooc_user` ( `id` INT UNSIGNED AUTO_INCREMENT KEY COMMENT '用户编号', `username` VARCHAR (20) NOT NULL UNIQUE COMMENT '用户名', `password` CHAR (32) NOT NULL COMMENT '密码', `email` VARCHAR (50) NOT NULL UNIQUE COMMENT '邮箱', `age` TINYINT UNSIGNED NOT NULL DEFAULT 18 COMMENT '年龄', `sex` ENUM ('男', '女', '保密') NOT NULL DEFAULT '保密' COMMENT '性别', `tel` CHAR (11) NOT NULL UNIQUE COMMENT '电话', `addr` VARCHAR (50) NOT NULL DEFAULT '北京' COMMENT '地址', `card` CHAR (18) NOT NULL UNIQUE COMMENT '身份证号', `married` TINYINT (1) NOT NULL DEFAULT 0 COMMENT '0代表未结婚,1代表已结婚', `salary` FLOAT (8, 2) NOT NULL DEFAULT 0 COMMENT '薪水' ) ENGINE = INNODB DEFAULT CHARSET = UTF8;
建议同学试一下上面的代码~
祝学习愉快!
相似问题