J'essaie de transférer mon nouveau schéma sur mon serveur de données, mais je n'arrive pas à comprendre pourquoi j'obtiens cette erreur. J'ai essayé de chercher la réponse ici, mais tout ce que j'ai trouvé m'a dit soit de définir le moteur de base de données sur Innodb, soit de m'assurer que les clés que j'essaie d'utiliser comme clé étrangère sont des clés primaires dans leurs propres tables. J'ai fait ces deux choses, si je ne me trompe pas. Avez-vous une autre aide à proposer ?
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
L'exécution de SQL script est terminée : déclarations : 7 ont réussi, 1 a échoué
Voici le SQL pour les tables parentes.
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
7 votes
Veuillez afficher le schéma des tables parentes :
Clients
yStaff
.0 votes
Duplicata possible de Erreur MySQL : Impossible d'ajouter une contrainte de clé étrangère
1 votes
@Denis ce n'est probablement pas un doublon puisque l'OP dit qu'ils ont vérifié que les colonnes sont des PKs dans les tables parentes.
0 votes
J'ai ajouté les instructions SQL pour les tables Clients et Personnel comme demandé.
0 votes
Duplicata possible de MySQL ne peut pas ajouter de contrainte de clé étrangère
0 votes
Remember unsigned affecte le type .