(一)ERROR 1005 (HY000): Can't create table '.\day19\user_role.frm' (errno: 121)
今天遇到的這個問題是因為創建了五張表,其中有兩張中間表,兩張中間表中都有一個共同的約束鍵,即一張表中的關鍵字被另外兩張中間表引用約束。所以另外兩張中間表中的引用要起不同的名字
create table role_privilege( role_id varchar(40), privilege_id varchar(40), primary key(role_id,privilege_id), constraint role_id_FK foreign key(role_id) references role(id), constraint privilege_id_FK foreign key(privilege_id) references privilege(id) ); create table user_role( role_id varchar(40), user_id varchar(40), primary key(role_id,user_id), constraint role_id_FK1 foreign key(role_id) references role(id), constraint user_id_FK foreign key(user_id) references user(id) );
(二)ERROR 1005 (HY000): Can't create table '.\day17\employee.frm' (errno: 150)
1、外鍵的引用類型不一樣,主鍵是int外鍵是char
2、找不到主表中 引用的列
3、主鍵和外鍵的字符編碼不一致
4.還有要建立外鍵的話,要先建立索引。沒有建立索引也會出錯。
有時候沒有設置主鍵,會產生這種問題