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

Requêtes MySQL Discussion :

Impossible de créer un index sur une table


Sujet :

Requêtes MySQL

  1. #1
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut Impossible de créer un index sur une table
    Bonjour, je souhaiterais créer un index sur une de mes tables seulement quand je le fais, j'obtiens cette erreur: #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

    Je comprends que le préfixe de la clé n'est pas correct parce qu'elle n'est pas un string et ca me dit que la longueur utilisée est la même que celle de la clé ou que le moteur de stockage ne ​​supporte pas les clés de préfixe unique.

    Voilà la requête que j'essaie d'exécuter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER TABLE `***`.`valuespost` ADD UNIQUE `metric_id` (`metric_id`(1), `post_id`(1), `criteria`(1))
    Ainsi que la structure de ma table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE IF NOT EXISTS `valuespost` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `metric_id` int(11) NOT NULL,
      `post_id` varchar(50) NOT NULL,
      `criteria` varchar(255) NOT NULL,
      `value` varchar(255) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    Que puis-je faire pour obtenir mon index svp?

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 55
    Points : 95
    Points
    95
    Par défaut
    Hello
    Cette requête modifiée passe sans problème :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER TABLE  `valuespost` ADD UNIQUE `metric_id` (`metric_id` , `post_id` , `criteria` )

    J'ai retiré les (1) associés à chaque colonne qui, pour moi, revient à dire que tu ne prends que le premier caractère de chaque champs de type Char ou Text, ce qui pour un index est assez étrange.


    Il est possible que le problème soit du au metric_id qui est un numérique.

    J'attends l'avis de plus grands connaisseurs ...

    Bon weekend

    Francis Lennert

  3. #3
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut
    J'ai essayé la requête que tu dis et ca fonctionne bien, merci.

    Si ca fonctionne, il n'y a pas de problème?

Discussions similaires

  1. Créer un index sur une grosse table sans surcharger la machine
    Par bigsister dans le forum Administration
    Réponses: 1
    Dernier message: 05/09/2014, 12h40
  2. [SQL 2005 SP1] Pb de plage d'index sur une table répliquée
    Par Peck777 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 28/08/2006, 18h55
  3. Parametrer le nombre d'index sur une table
    Par Invité dans le forum Access
    Réponses: 1
    Dernier message: 17/05/2006, 11h36
  4. MySQL - Probleme avec 2 index sur une table
    Par xG-Hannibal dans le forum Outils
    Réponses: 7
    Dernier message: 31/03/2006, 14h08

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