【发布时间】:2021-11-17 23:02:10
【问题描述】:
我正在为一个学校项目构建一个数据库,但由于某种原因,我无法在 2 个表(仅这 2 个)之间进行外键引用。我的项目有 14 个表,它适用于所有其他表。
表格如下:
create table degree(
title varchar(50),
idryma varchar(40),
bathmida enum('High School', 'Univercity', 'Master', 'PHD'),
constraint degree_id primary key (title, idryma)
);
create table has_degree(
degree_title varchar(50),
degree_idryma varchar(40),
employee_username varchar(12),
acquisition_year year(4),
grade float(3,1),
constraint has_degree_id primary key (degree_title, degree_idryma, employee_username)
);
然后我尝试更改表以便建立外键连接:
alter table has_degree add foreign key (degree_title) references degree(title);
alter table has_degree add foreign key (degree_idryma) references degree(idryma);
但我继续得到
错误代码:1824。无法打开引用的表'degree'
我试图让它们变成那样:
create table degree(
title varchar(50),
idryma varchar(40),
bathmida enum('High School', 'Univercity', 'Master', 'PHD'),
constraint degree_id primary key (title, idryma)
);
create table has_degree(
degree_title varchar(50),
degree_idryma varchar(40),
employee_username varchar(12),
acquisition_year year(4),
grade float(3,1),
foreign key (degree_title) references degree(title),
foreign key (degree_idryma) references degree(idryma),
/*employee is an other table that I use and that works just fine*/
foreign key (employee_username) references employee(employee_username),
constraint has_degree_id primary key (degree_title, degree_idryma, employee_username)
);
但唯一改变的是我得到了
错误代码:1822。添加外键约束失败。引用表“degree”中的约束“has_degree_ibfk_2”缺少索引
【问题讨论】:
标签: mysql sql datatables