Je continue à avoir ce code d'erreur mysql # 1089
CREATE TABLE `movies`.`movie`
( `movie_id` INT(3) NULL AUTO_INCREMENT, `movie_name` VARCHAR(25) NULL,
`movie_embedded_id` VARCHAR(50) NULL, `rating_no` INT(3) NULL,
`movie_description` VARCHAR(50) NULL, PRIMARY KEY (`movie_id`(3))) ENGINE = InnoDB;
je reçois cette erreur:
#1089-clé de préfixe incorrecte; la partie clé utilisée n'est pas une chaîne, La longueur utilisée est plus longue que la partie clé, ou le moteur de stockage ne soutenez les clés de préfixe uniques.
mais j'ai aucune idée de ce que cela signifie, quelqu'un a une idée?
3 réponses
Avec la partie
PRIMARY KEY (`movie_id`(3))
vous dites à mysql de créer un sous-partie de la clé* sur les 3 premiers octets de movie id. Cela ne fonctionne que pour les types string.
Vous devez utiliser
PRIMARY KEY (`movie_id`)
sans longueur.
*Est-ce sûr que la requête résultant dans l'erreur? Je n'ai jamais vu ça sur une clé primaire, elle est utilisée pour les index.
après avoir sélectionné la touche primaire lorsque vous créez la table, ne saisissez aucune valeur dans la boîte de dialogue pop
Vous pouvez également obtenir cette erreur lors de la création d'un index si vous spécifiez un préfixe de longueur supérieure à la longueur de la colonne réel. Si vous avez essayé de créer un index contenant someColumn(20)
mais dans la table someColumnVARCHAR(15)
, alors cette erreur se produit.