Erreur de clé en double dans MySQL
Ci-dessous la requête est, ce qui entraîne une erreur. J'ai créé cette requête MySQL Workbench
Error
SQL query:
-- -----------------------------------------------------
-- Table `smsdb`.`IntSupervisor`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `smsdb`.`IntSupervisor` (
`int_supr_id` VARCHAR( 32 ) NOT NULL ,
`cent_id` INT NOT NULL ,
INDEX `fk_IntSupervisor_Person1_idx` ( `int_supr_id` ASC ) ,
INDEX `fk_IntSupervisor_Center1_idx` ( `cent_id` ASC ) ,
PRIMARY KEY ( `int_supr_id` ) ,
CONSTRAINT `fk_parent_id` FOREIGN KEY ( `int_supr_id` )
REFERENCES `smsdb`.`Staff` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT ,
CONSTRAINT `fk_center_id` FOREIGN KEY ( `cent_id` )
REFERENCES `smsdb`.`Center` (`cent_id`
) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE = InnoDB;
J'ai un message d'erreur à l'exécution:
MySQL said: Documentation
#1022 - Can't write; duplicate key in table 'intsupervisor'
Si quelqu'un a des idées sur comment je peux résoudre ce problème, merci de me guider dans la bonne direction. Merci!
- Vous avez un double de la clé de définition. Voir ma réponse ci-dessous.
Vous devez vous connecter pour publier un commentaire.
Bienvenue aux bases de données relationnelles MySQL! 😉
Vous ne pouvez pas avoir deux clés étrangères nommé de la même manière sur l'ensemble de la requête.
Dans la déclaration ci-dessus, vous ne pouvez pas redéfinir le type d'index sur une colonne unique.
Alors, comment puis-je corriger cette erreur gênante?
Basé sur la structure de la base de données, vous devez supprimer l'une des deux lignes ci-dessus. Je devine votre lien à une autre table de la création, alors je vous recommandons de le remplacer ...
Avec les éléments suivants:
(si le ci-dessus ne fonctionne pas, vous avez probablement besoin de spécifier un nom de table pour la clé étrangère)
(Oups, lecture rapide)
L'ajout d'un index de la colonne 'int_supr_id' et puis aussi ajouter un primary_index à elle. Vous ne pouvez ajouter 1 index pour elle (ainsi, dans les cas normaux)
Probablement déclenche une erreur, car vous rendant à la fois primaires et les clés étrangères sur une colonne
int_supr_id