Invalid default value for 'addr',为什么会出错呢?

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'


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学用的哪个版本的数据库呢?

我是mysql5.7,运行是没有问题的:http://img1.sycdn.imooc.com//climg/5b2b68f80001fe5207400360.jpg

祝学习愉快!

一叶知秋519 2018-06-19 09:49:27

这是帮助你修改后的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;

建议同学试一下上面的代码~

祝学习愉快!

  • 提问者 qq_小梁labor_0 #1
    为什么我这里还是有错误呢? 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 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; ERROR 1067 (42000): Invalid default value for 'addr'
    2018-06-21 15:56:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师