Problème :
Lors de la tentative de création d'une table à l'aide de requête suivante :
<code class="sql">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;</code>
l'erreur suivante est rencontrée :
#1089 - Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys.
Réponse :
L'erreur se produit car la définition PRIMARY KEY spécifie une clé de sous-partie, c'est-à-dire uniquement les 3 premiers octets de movie_id. Ceci n'est pris en charge que pour les types de données chaîne. Pour les clés primaires sur les types de données numériques, la longueur complète doit être incluse, sans spécifier de sous-partie :
<code class="sql">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`)) ENGINE = InnoDB;</code>
En effectuant cette modification, l'erreur ne devrait plus apparaître et la table sera créée avec succès.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!