Invalid default value for 'addr',为什么会出错呢?
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'
正在回答
同学用的哪个版本的数据库呢?
我是mysql5.7,运行是没有问题的:
祝学习愉快!
这是帮助你修改后的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;
建议同学试一下上面的代码~
祝学习愉快!
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星