13432878738 发表于 2018-10-6 07:04:32

MySQL ERROR 1215 (HY000)的一个情况

  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 。所以应该是这样:
  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;
  注意default前面要有空格才行,不然还是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就解决了。

页: [1]
查看完整版本: MySQL ERROR 1215 (HY000)的一个情况