完整报错:
Failed to add the foreign key constraint. Missing index for constraint 'fk_id_cid' in the referenced table 'class'
报错原因:
主表没有主键,而外键关联的时候从表字段一定是和主表的主键相关联的,然而从表有没有主键则无关紧要
代码分析:
首先创建两张表:
create table class(id int,subject varchar(20));create table student(id int,name varchar(10),cid int);
试图添加外键:
alter table student add constraint fk_id_cid foreign key (cid) references class (id);
会报错,此时增加主表的主键,再次添加外键,运行成功:
alter table class add primary key (id);alter table student add constraint fk_id_cid foreign key (cid) references class (id);
运行截图:
由此也可以看出从表有无主键对外键的添加无关紧要。