Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi est-ce que j'obtiens l'erreur « Clé de préfixe incorrecte » (#1089) lors de la création d'une table MySQL ?

Patricia Arquette
Libérer: 2024-10-30 02:33:03
original
332 Les gens l'ont consulté

Why am I getting the

Erreur MySQL : clé de préfixe incorrecte (#1089)

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>
Copier après la connexion

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.
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal