我在student_management下创建这样一个表:
create table teacher_info
(tea_id int primary key,name varchar(8),
sex varchar(4) check(sex='男' or sex='女'),
join_time date,
nationality varchar(8) default '汉族'
);
但是结果报错了:ERROR 1067 (42000) Invalid default value for 'nationality'
然后我把:'汉族'改成'hanzu'就不会报错了。顺便再问一个问题:比如之前配置数据库的时候我用的是别的字符集,现在想改成utf-8的字符集要怎么改啊?小白啊……希望大大们帮我解答一下以上两个问题,谢谢了!!!
create table teacher_info
(tea_id int primary key,name varchar(8),
sex varchar(4) check(sex='男' or sex='女'),
join_time date,
nationality varchar(8) default '汉族'
);
但是结果报错了:ERROR 1067 (42000) Invalid default value for 'nationality'
然后我把:'汉族'改成'hanzu'就不会报错了。顺便再问一个问题:比如之前配置数据库的时候我用的是别的字符集,现在想改成utf-8的字符集要怎么改啊?小白啊……希望大大们帮我解答一下以上两个问题,谢谢了!!!
(tea_id INT PRIMARY KEY,NAME VARCHAR(8),
sex ENUM('男','女'),
join_time DATE,
nationality VARCHAR(8) DEFAULT '汉族'
);
MYSQL的语法和SQL SERVER并不相同,在开始MYSQL之前,可以参考一下MYSQL官方文档的教程部分。
-> (tea_id int primary key,name varchar(8),
-> sex varchar(4) check(sex='男' or sex='女'),
-> join_time date,
-> nationality varchar(8) default '汉族'
-> ) charset='gbk';
Query OK, 0 rows affected (0.33 sec)mysql>
-> (tea_id INT PRIMARY KEY,name VARCHAR(8),
-> sex VARCHAR(4) check(sex='男' or sex='女'),
-> join_time DATE,
-> nationality VARCHAR(8) DEFAULT '汉族'
-> );
Query OK, 0 rows affected (0.09 sec)
那为什么这样有失没错的,也没有设置字符集啊
(tea_id INT PRIMARY KEY,NAME VARCHAR(8),
sex ENUM('男','女'),
join_time DATE,
nationality VARCHAR(8) UNICODE DEFAULT '汉族'
);
(tea_id INT PRIMARY KEY,
NAME VARCHAR(8) UNICODE ,
sex ENUM('男','女'),
join_time DATE,
nationality VARCHAR(8) UNICODE DEFAULT '汉族'
);
你可以先了解一下字符集的设置。
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码