Mysql – no matching unique or primary key for this column-list

dbmsMySQLoracle

My parent table

Create table spare(
Sid int ,
Sname varchar(20),
Mid int,
primary key(Sid,Sname),
foreign key(Mid) references manu(Mid) on delete cascade

);

My child table

Create table Branch(
Bid int primary key,
Loc varchar(20),
Sid int,
Sname varchar(20),
foreign key(Sid) references spare(Sid),
foreign key(Sname) references spare(Sname) 
);

I have made the references to the primary keys itseld but I'm still getting this error

Best Answer

you have a combined Primanry key. So use

Create table Branch(
Bid int primary key,
Loc varchar(20),
Sid int,
Sname varchar(20),
foreign key(Sid,Sname) references spare(Sid,Sname)
);

Or you define in your spare table two new indexes for the column, so you can have different foreign keys