Jeg prøver å videresende det nye skjemaet mitt til db-serveren min, men jeg kan ikke finne ut hvorfor jeg får denne feilen. Jeg har prøvd å søke etter svaret her, men alt jeg har funnet har sagt å enten sette db-motoren til Innodb eller å sørge for at nøklene jeg prøver å bruke som fremmednøkkel er primærnøkler i sine egne tabeller. Jeg har gjort begge disse tingene, hvis jeg ikke tar feil. Noen annen hjelp dere kan tilby?
Executing SQL script in server
ERROR: Error 1215: Cannot add foreign key constraint
-- -----------------------------------------------------
-- Table `Alternative_Pathways`.`Clients_has_Staff`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Alternative_Pathways`.`Clients_has_Staff` (
`Clients_Case_Number` INT NOT NULL ,
`Staff_Emp_ID` INT NOT NULL ,
PRIMARY KEY (`Clients_Case_Number`, `Staff_Emp_ID`) ,
INDEX `fk_Clients_has_Staff_Staff1_idx` (`Staff_Emp_ID` ASC) ,
INDEX `fk_Clients_has_Staff_Clients_idx` (`Clients_Case_Number` ASC) ,
CONSTRAINT `fk_Clients_has_Staff_Clients`
FOREIGN KEY (`Clients_Case_Number` )
REFERENCES `Alternative_Pathways`.`Clients` (`Case_Number` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Clients_has_Staff_Staff1`
FOREIGN KEY (`Staff_Emp_ID` )
REFERENCES `Alternative_Pathways`.`Staff` (`Emp_ID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
SQL-skriptutførelse ferdig: uttalelser: 7 lyktes, 1 mislyktes
Her er SQL for de overordnede tabellene.
CREATE TABLE IF NOT EXISTS `Alternative_Pathways`.`Clients` (
`Case_Number` INT NOT NULL ,
`First_Name` CHAR(10) NULL ,
`Middle_Name` CHAR(10) NULL ,
`Last_Name` CHAR(10) NULL ,
`Address` CHAR(50) NULL ,
`Phone_Number` INT(10) NULL ,
PRIMARY KEY (`Case_Number`) )
ENGINE = InnoDB
CREATE TABLE IF NOT EXISTS `Alternative_Pathways`.`Staff` (
`Emp_ID` INT NOT NULL ,
`First_Name` CHAR(10) NULL ,
`Middle_Name` CHAR(10) NULL ,
`Last_Name` CHAR(10) NULL ,
PRIMARY KEY (`Emp_ID`) )
ENGINE = InnoDB
Jeg antar at Klienter.saksnummer
og/eller Personale.emp_ID
ikke er nøyaktig samme datatype som Klienter_har_personale.Klienter_saksnummer
og Klienter_har_personale.emp_ID
.
Kanskje kolonnene i de overordnede tabellene er INT UNSIGNED
?
De må ha nøyaktig samme datatype i begge tabellene.
Årsaker til at du kan få en fremmednøkkelbegrensningsfeil:
Oppdatering:
ON DELETE SET NULL
ikke er definert til å være null. Sørg derfor for at kolonnen er satt til null som standard.Sjekk disse.