I am new to SQL and trying to create a schema as per the below. However, I can't seem to get the Foreign KEy for the Member table right. I tried adding it after the table was created and that seemed to work initially but now when I try to add a test row of data I get this error.
I'm sure it's something really stupid that I've missed but if anyone could point out what i've done wrong that would be great!
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails
(memberproject
.member
, CONSTRAINT member_ibfk_2
FOREIGN KEY (MemNo
) REFERENCES booking
(MemNo
))
CREATE DATABASE MemberProject;
USE MemberProject;
CREATE TABLE Skill(
SkillCode VARCHAR(20) NOT NULL,
Description VARCHAR(140),
ChargeOutRate VARCHAR(20),
PRIMARY KEY (SkillCode)
);
CREATE TABLE Member(
MemNo VARCHAR(10) NOT NULL,
MemName VARCHAR(40),
Department VARCHAR(20),
SkillCode VARCHAR(20),
PRIMARY KEY (MemNo),
FOREIGN KEY (SkillCode) REFERENCES Skill (SkillCode)
);
CREATE TABLE Booking(
MemNo VARCHAR(10) NOT NULL,
ProjectNo VARCHAR(10) NOT NULL,
DateWorkedOn VARCHAR(20),
PRIMARY KEY (ProjectNo, MemNo),
FOREIGN KEY (MemNo) REFERENCES Member (MemNo)
);
could not create db with Member foreign key so am adding it after the fact
ALTER table Member
ADD foreign key (MemNo) references Booking (MemNo);
CREATE TABLE Project(
ProjectNo VARCHAR(10) NOT NULL,
ProjName VARCHAR(40),
StartDate VARCHAR(20),
EndDate VARCHAR(40),
Budget VARCHAR(40),
Proj_Manager_MemNo VARCHAR(10),
PRIMARY KEY (ProjectNo),
FOREIGN KEY (ProjectNo) REFERENCES Booking (ProjectNo) ON UPDATE CASCADE
);