Mysql:ERROR 1005 (HY000): Can‘t create table ‘student.选课‘ (errno: 150)解决方法

一、前面我按照正常操作一步步创建数据库和表,但总是会报错。。

复制各种错误去百度找答案,但是有时候有答案也不能解决出现的问题。

1.改变了数据库的字符集类型,但是依旧没有解决,

2.因为这个表里面还是原来的字符集

 3.如果想在这里修改字符集类型,但是它又出现这种错误:

尝试了好久,才想到,既然按正常步骤创建不能改变字符集,那我 在每次创建的时候设置它的字符集不就好了,有想法就去尝试!

二、1.创建数据库的时候跟着设置字符集类型

create database 数据库名称 set character set utf8;

Create database student set character set utf8;


2.在每个表中设置默认字符集

create table 表名(字段 字段类型) defult character set utf8;

create table 班级(班级名称 varchar(10) primary key,
  所属学院 varchar(10) not null,
  辅导员 varchar(8),
  自习室 varchar(12)) default character set utf8;
create table 学生(学号 char(6) primary key,
姓名 varchar(8) not null,
性别 char(1),
年龄 tinyint default 20,
所在班级 varchar(10),
籍贯 varchar(20),
foreign key (所在班级) references 班级(班级名称) on update restrict on delete restrict)default character set utf8;

create table 课程(课程号 char(3) primary key,
课程名 varchar(20) unique not null,
先修课程 char(3),
课程性质 enum('选修','公共必修','专业必修'),
学分 tinyint)default character set utf8;
create table 选课(学号 char(6),
课程号 char(3),
成绩 smallint,
primary key(学号,课程号))default character set utf8;

终于,它终于没有报错了!!! 

3.接下来我们就可以插入数据

insert into 班级 values('19计科1','信息与计算机','章英','J06-301'),('19计科2','信息与计算机','章英','J06-302'),('19计科3','信息与计算机','刘建','J06-303'),('19信管','信息与计算机','刘建','J06-401'),('19电商1','管理','王小丽','J07-101'),('19电商2','管理','王小丽','J07-102'),('19市营','管理','王小丽','J07-103'),('19会计1','管理','王婷','J07-201'),('19会计2','管理','王婷','J07-202'),('19大英1','外语','刘俊飞','J06-311'),('19大英2','外语','刘俊飞','J06-312'),('19法语','外语','代晶','J06-313');

insert into 学生 values('060101','王小辉','男',20,'19计科1','湖北武汉'),('060102','吴珍萍','女',20,'19计科1','江西南昌'),

('060103','吴鑫','男',19,'19计科2','湖北武汉'),('070101','孙晓英','女',21,'19电商1','河南郑州'),('070102','林小慧','女',20,'19电商1','湖南长沙'),('070103','吴俊','男',19,'19电商1','湖北武汉'), ('070301','李霖','男',21,'19会计1','江西南昌'),('070302','张小慧','女',22,'19会计1','湖北黄石'),('070303','李霖','男',21,'19会计2','江西南昌'),('080101','江毅飞','男',20,'19大英1','湖北黄石'),('080102','郑文曦','女',20,'19大英1','湖北随州'),('080103','江毅飞','男',20,'19大英1','湖北黄石'),('080104','胡梦','女',18,'19大英1','江西南昌');

insert into 课程 values('c01','高等数学',null,'公共必修',4);

insert into 课程 values('c02','计算机基础',null,'公共必修',3);

insert into 课程 values('c03','C程序设计','c02','公共必修',3);

insert into 课程 values('c04','大学英语',null,'公共必修',4);

insert into 课程 values('c05','数据结构','c03','专业必修',4);

insert into 课程 values('c06','数据库原理','c03','专业必修',3);

insert into 课程 values('c07','音乐欣赏',null,'选修',2);

insert into 课程 values('c08','论文写作指导',null,'选修',2);

insert into 选课 values('060101','c01',91);

insert into 选课 values('060101','c03',null);

insert into 选课 values('060101','c04',95);

insert into 选课 values('060101','c05',80);

insert into 选课 values('060102','c01',81);

insert into 选课 values('060102','c03',null);

insert into 选课 values('060102','c04',92);

insert into 选课 values('070101','c01',50);

insert into 选课 values('070101','c02',86);

insert into 选课 values('070101','c06',90);

insert into 选课 values('070103','c04',52);

insert into 选课 values('070103','c06',47);

insert into 选课 values('070301','c01',87);

insert into 选课 values('070301','c04',83);

insert into 选课 values('080101','c02',73);

insert into 选课 values('080101','c07',69);

 这样我们也解决了,插入中文出现报错的情况。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值