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回答

一叶知秋519

2018-06-21

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

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

祝学习愉快!

0
hq_小梁labor_0
h 非常感谢!
h018-06-21
共1条回复

一叶知秋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;

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

祝学习愉快!

0
hq_小梁labor_0
h 为什么我这里还是有错误呢? 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'
h018-06-21
共1条回复

0 学习 · 4297 问题

查看课程