IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Specified key was too long


Sujet :

Administration MySQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Par défaut Specified key was too long
    Bonjour,
    J'ai une table msyql que je désire modifier mais je rencontre l'erreur :
    #1071 - Specified key was too long; max key length is 1000 bytes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ALTER TABLE `Items` ADD UNIQUE (
    `ItemTitle`, 
    )

    Concernant Mon champs ItemTitle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `ItemTitle` varchar(255) NOT NULL,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ENGINE=MyISAM  DEFAULT CHARSET=utf8
    Comment puis je eviter l'erreur ?
    Cordialement
    yaz

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    ramène le champ à 250, ou bien change le charset.

    Citation Envoyé par Wikipédia
    UTF-8 (UCS transformation format 8 bits) est un format de codage de caractères défini pour les caractères Unicode (UCS). Chaque caractère est codé sur une suite d'un à quatre octets.
    et 4 x 255 >> 1000

    Ou encore un index partiel
    Pour les colonnes CHAR et VARCHAR, les index peut être créés sur uniquement une partie de la colonne, avec la syntaxe col_name(length) ... La requête suivante crée un index en utilisant les 10 premiers caractères de la colonne name :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql> CREATE INDEX part_of_name ON customer (name(10));

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Par défaut
    Voila ce que j'ai fais :
    ALTER TABLE `Items` CHANGE `ItemTitle` `ItemTitle` VARCHAR( 250 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL

    Après j'ai reessayé mais
    ALTER TABLE `Items` ADD UNIQUE (
    `ItemTitle` ,
    `Journal`
    )

    MySQL a réponduocumentation
    #1071 - Specified key was too long; max key length is 1000 bytes

  4. #4
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    Ach !

    249 alors, j'avais omis l'octet nécessaire au stockage de la longueur effective de la chaine dans la colonne.

    En priant pour que ce soit ça

  5. #5
    Membre émérite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par défaut
    salut,

    tu as trouvé une solution à ton problème ?

    parce que j'essaie de restorer un dump dans une version différente de mysql et j'ai cette erreur. apparrement c'est un bug qui vient à peine d'etre résolu http://bugs.mysql.com/bug.php?id=4541

    sinon, dans le fichier dump j'ai essayé de remplacer le 255 par 200, cf:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE TABLE `descriptions` (
      `id` varchar(255) NOT NULL,
    mais j'ai tjs la meme erreur

    vous avez un "workaround" à ce problème?

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/12/2012, 14h28
  2. Erreur: 1071 Specified key was too long
    Par Alcius dans le forum Requêtes
    Réponses: 9
    Dernier message: 04/12/2010, 16h11
  3. [NWNX ODBC2 plugin] Data too long for column ..
    Par ballestolive dans le forum Débuter
    Réponses: 1
    Dernier message: 31/10/2006, 15h01
  4. ERROR 1406 (22001): Data too long for column
    Par olive_le_malin dans le forum Requêtes
    Réponses: 6
    Dernier message: 12/06/2006, 14h27
  5. "Data truncation: Data too long for column"
    Par bibiloute dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 04/05/2006, 09h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo