完整报错:
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);
运行截图:
由此也可以看出从表有无主键对外键的添加无关紧要。