hibernate 创建外键失败

项目用的ssh框架,启动时会报创建外键失败的错误:

ERROR: HHH000389: Unsuccessful: alter table Course_CourseType add index FK_bq7f9dk9hyurjyi8qiypjjk0 (course_id), add constraint FK_bq7f9dk9hyurjyi8qiypjjk0 foreign key (course_id) references Course (id)

ERROR: Cannot add foreign key constraint

在 MySQL workbench 中执行,也会报错:

14:22:03    alter table Course_CourseType add index FK_bq7f9dk9hyurjyi8qiypjjk0 (course_id), add constraint FK_bq7f9dk9hyurjyi8qiypjjk0 foreign key (course_id) references Course (id)    

Error Code: 1215. Cannot add foreign key constraint    0.515 sec

解决方法:

1) 确保 添加的外键的类型和被引用的那个值的类型和长度是一样的

    比如:在我的工程里就是保证 course_courseType表中的字段course_id 和 course表中的主键id 的类型和长度是一致的。

    course.id varchar(64)

    course_courseType.course_id (64)

 2) 确保两个表中的Engine是一致的

 3) 确保添加外键的表(course_courseType) 中与course 表中的要关联的字段的charset是一致的,修改charset的话,可以按下面 

    步骤操作:

    

   打开之后是如下界面:

    

上面三个红圈应该也得跟要关联表的数据表一致,我改完之后,还是会失败,所以我就继续修改了columns里面对应外键

的字段的charset/Collation的相关信息,也是跟关联表中要关联字段的信息一致。


 

猜你喜欢

转载自blog.csdn.net/huanhuan8944172/article/details/88238428
今日推荐