- create table pcourse(cno char(9),
- cpno char(9),
- primary key(cno,cpno),
- foreign key(cno) references course(cno),
- foreign key(cpno) references course(cno)
- );
- ERROR 1215 (HY000): Cannot add foreign key constraint
西电数据库上机作业. 这个外键就是添不上去. 之前 student 和 course 因为有中文数据, 所以 set character_set_server 和 set character_set_database 均 = utf8, 但建表的时候需要定义后还是需要加上 default charset=utf8. 所以应该是这样:
- create table pcourse(
- cno char(9),
- cpno char(9),
- primary key(cno,cpno),
- foreign key(cno) references course(cno),
- foreign key(cpno) references course(cno)
- ) default charset=utf8;
注意 defualt 前面要有空格才行, 不然还是 ERROR 1215 (HY000): Cannot add foreign key constraint.
建立表 course 的时候不需要外键:
- create table course(
- cno char(9),
- cname char(48) not null,
- ccredit int,
- primary key (cno)
- );
- Warning | 1265 | Data truncated for column 'cname' at row 1
这个同样设置 default charset=utf8 就解决了.
来源: http://www.bubuko.com/infodetail-2587034.html