ce qui ne va pas avec cette commande alter table:MYSQL alter table - ajouter INDEX + FOREIGN KEY donne erreur 1005
ALTER TABLE `lp`
ADD COLUMN `RuleId` INT(10) NOT NULL DEFAULT -111 AFTER `Weight` , ,
ADD CONSTRAINT `fk_1` FOREIGN KEY (`RuleId`) REFERENCES `Rules` (`RuleId`) ON DELETE NO ACTION ON UPDATE NO ACTION,
ADD INDEX `fk_1` (`RuleId` ASC) ;
si je laisse tomber la ligne
ses travaux,
l'erreur que je reçois est:
Error Code : 1005
Can't create table '..' (errno: 121)
comment puis-je ajouter une clé étrangère et INDEX sur le même champ?
Mise à jour:
je tente de séparer 2 requêtes, d'abord ajouter INDEX et après ajouter FOREIGN KEY, l'indice ajouté, mais la deuxième requête ne fonctionne pas!
quand je change le nom de clé étrangère (comme: « fk_2 ») et essayez exécuter je reçois une erreur: Code d'erreur: 1452 Impossible d'ajouter ou mettre à jour une ligne enfant: une contrainte de clé étrangère échoue
J'essaie de séparer mais le même problème –
Ah, je vois, vous essayez de donner le même nom à l'index et à la contrainte de clé étrangère. Utilisez des noms uniques et cela devrait fonctionner. –
lorsque je change le nom et que j'essaie de l'exécuter, j'obtiens une erreur: Code d'erreur: 1452 Impossible d'ajouter ou de mettre à jour une ligne enfant: une contrainte de clé étrangère échoue –