I have this code right here: `
DROP TABLE IF EXISTS ‘User’ ;
CREATE TABLE IF NOT EXISTS `User` (
`userID` INT NOT NULL,
`UserPass` VARCHAR(45) NOT NULL,
`department` VARCHAR(45) NOT NULL,
`majorName` VARCHAR(45) NULL,
`academicYear` INT(4) NULL,
`minorName` VARCHAR(45) NULL,
`userName` VARCHAR(45) NOT NULL,
`userEmail` VARCHAR(45) NOT NULL,
`userType` VARCHAR(45) NOT NULL,
`AdvID` INT NULL,
PRIMARY KEY (`userID`));
ALTER TABLE `User` ADD FOREIGN KEY (`AdvID`) REFERENCES `User` (`userID`);
DROP TABLE IF EXISTS ‘AdvisorAvailability’ ;
CREATE TABLE IF NOT EXISTS `AdvisorAvailability` (
`date/timeBegin` DATETIME NOT NULL,
`date/timeEnd` DATETIME NOT NULL,
`ID` INT NOT NULL,
PRIMARY KEY (`date/timeBegin`,`date/timeEnd`, `ID`)
)
;
ALTER TABLE `AdvisorAvailability` ADD FOREIGN KEY (`ID`) REFERENCES `User` (`userID`);
DROP TABLE IF EXISTS ‘meetingSchedule’ ;
CREATE TABLE IF NOT EXISTS `meetingSchedule` (
`date/timeBegin` DATETIME NOT NULL,
`date/timeEnd` DATETIME NOT NULL,
`AdvID` INT NOT NULL,
`StuID` INT NOT NULL,
`location` VARCHAR(45) NULL,
`meetingNotes` VARCHAR(45) NULL,
PRIMARY KEY (`date/timeBegin`,`date/timeEnd`, `AdvID`),
FOREIGN KEY (`AdvID`) REFERENCES User(`userID`),
FOREIGN KEY (`StuID`) REFERENCES User(`userID`));
DROP TABLE IF EXISTS ‘course’ ;
CREATE TABLE IF NOT EXISTS `course` (
`courseName` VARCHAR(45) NOT NULL,
`classRestriction` VARCHAR(45) NULL,
`majorRestriction` VARCHAR(45) NULL,
PRIMARY KEY (`courseName`)
);
DROP TABLE IF EXISTS `courseListing`;
CREATE TABLE IF NOT EXISTS `courseListing` (
`CRN` INT NOT NULL,
`courseName` VARCHAR(45) NOT NULL,
`numberOfSeats` VARCHAR(45) NULL,
`DayOfWeek` VARCHAR(45) NULL,
`TimeOfDayBegin` TIME NULL,
`TimeOfDayEnd` TIME NULL,
`location` VARCHAR(45) NULL,
`professor` VARCHAR(45) NULL,
PRIMARY KEY (`CRN`),
FOREIGN KEY (`courseName`) REFERENCES `course`(`courseName`)
)
;
DROP TABLE IF EXISTS ‘courseSchedule’ ;
CREATE TABLE IF NOT EXISTS `courseSchedule` (
`termID` INT NOT NULL,
`CRN` INT NOT NULL,
PRIMARY KEY (`termID`),
FOREIGN KEY (`CRN`) REFERENCES `courseListing`(`CRN`))
;
DROP TABLE IF EXISTS `Prereq`;
CREATE TABLE IF NOT EXISTS `Prereq` (
`Course` VARCHAR(45) NOT NULL,
`PreReqCourse` VARCHAR(45) NOT NULL,
PRIMARY KEY (`Course`,`PreReqCourse`),
FOREIGN KEY (`Course`) REFERENCES `course`(`courseName`),
FOREIGN KEY (`PreReqCourse`) REFERENCES `course`(`courseName`))
;
DROP TABLE IF EXISTS `Coreq`;
CREATE TABLE IF NOT EXISTS `Coreq` (
`Course` VARCHAR(45) NOT NULL,
`CoReqCourse` VARCHAR(45) NOT NULL,
PRIMARY KEY (`Course`,`CoReqCourse`),
FOREIGN KEY (`Course`) REFERENCES `course`(`courseName`),
FOREIGN KEY (`CoReqCourse`) REFERENCES `course`(`courseName`))
;
DROP TABLE IF EXISTS ‘Registration’ ;
CREATE TABLE IF NOT EXISTS `Registration` (
`ID` INT NOT NULL,
`termID` INT NOT NULL,
`grade` VARCHAR(45) NULL,
`className` VARCHAR(45) NULL,
PRIMARY KEY (`ID`,`termID`)
);
ALTER TABLE `Registration` ADD FOREIGN KEY (`termID`) REFERENCES `courseSchedule` (`termID`);
DROP TABLE IF EXISTS ‘minorRequirements’ ;
CREATE TABLE IF NOT EXISTS `minorRequirements` (
`minorName` VARCHAR(20) NOT NULL,
PRIMARY KEY (`minorName`))
;
DROP TABLE IF EXISTS ‘courseMinorReq’ ;
CREATE TABLE IF NOT EXISTS `courseMinorReq` (
`CRN` INT NOT NULL,
`catalogYear` VARCHAR(45) NOT NULL,
`minorName` VARCHAR(20) NOT NULL,
PRIMARY KEY (`CRN`, `minorName`, `catalogYear`),
FOREIGN KEY (`CRN`) REFERENCES `courseListing` (`CRN`),
FOREIGN KEY (`minorName`) REFERENCES `minorRequirements` (`minorName`))
;
DROP TABLE IF EXISTS ‘majorRequirements’ ;
CREATE TABLE IF NOT EXISTS `majorRequirements` (
`majorName` VARCHAR(20) NOT NULL,
PRIMARY KEY (`majorName`))
;
DROP TABLE IF EXISTS ‘courseMajorReq’ ;
CREATE TABLE IF NOT EXISTS `courseMajorReq` (
`catalogYear` INT NOT NULL,
`CRN` INT NOT NULL,
`majorName` VARCHAR(20) NOT NULL,
PRIMARY KEY (`catalogYear`, `CRN`, `majorName`),
FOREIGN KEY (`CRN`) REFERENCES `courseListing` (`CRN`),
FOREIGN KEY (`majorName`) REFERENCES `majorRequirements` (`majorName`))
;
DELIMITER ;
and for some reason when I run for a second time (I always make sure I can run my create statements back to back in case I made any mistakes) it errors out with
DROP TABLE IF EXISTS `courseListing`;
MySQL said: Documentation #1217 - Cannot delete or update a parent row: a foreign key constraint fails`
I feel like I've gotten this to work at one point, what am I doing incorrectly now? I know I must have screwed up an FK somewhere, I just don't know where. Thanks for any help, this is my first month or so with SQL so any feedback is appreciated!