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

SQL Procédural MySQL Discussion :

chaine trop longue pour être indexée


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Par défaut chaine trop longue pour être indexée
    Bonjour,

    J'ai une table composée d'une colonne id AUTO_INCREMENT et une colonne sequence TEXT.

    Cette sequence est >= 500 caractères (ADN).

    Lorsque je veux créer un index UNIQUE ou mettre sequence en clé primaire (en plus de l'id) j'ai une erreur de longueur de clé.

    Sauriez-vous vous comment résoudre ce problème (éventuellement un CHECK) ?

    En vous remerciant,

    C. Tobini

  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
    Pour les colonnes BLOB et TEXT la longueur d'index est obligatoire
    http://dev.mysql.com/doc/refman/5.0/...ate-index.html

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Par défaut
    Bonjour et merci de la réponse,

    Ca marche parfaitement dans ce contexte, merci !

    Mon problème maintenant est que je travaille sur des séquences d'ADN composées des lettres A, T, G ou C.

    Sachant que 2 séquences peuvent varier d'une seule lettre et que la longueur est variable, il m'est impossible de préciser une taille de comparaison pour l'index UNIQUE, et la comparaison doit donc se faire sur tous les caractères pour des séquences de même longueur.

    Le moyen d'effectuer ceci est-il de créer un trigger qui me permettrait de vérifier la préexistence avant insertion de 'sequence' ?

    Ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT INTO variable sequence FROM table WHERE sequence = ?
    IF FOUND
     RETURN 1
    ELSE
     RETURN 0
    Et selon le code de retour effectuer l'insertion ou pas.

    C. Tobini

  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
    Pour éviter ce genre de pb, il faudrait peut-être regarder du coté des mécanismes genre CRC afin d'obtenir une valeur qui sera indexable.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Par défaut
    C'est-à-dire obtenir un nombre à partir d'un CRC et indexer ce nombre à la place de la séquence ?

    C. Tobini

  6. #6
    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
    Citation Envoyé par ctobini Voir le message
    C'est-à-dire obtenir un nombre à partir d'un CRC et indexer ce nombre à la place de la séquence ?

    C. Tobini
    C'est cela même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [E-02] Chaine trop longue pour Validation.Add
    Par -={-_-}=- dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 24/11/2008, 06h28
  2. Chaines trop longues
    Par Anduriel dans le forum Langage
    Réponses: 7
    Dernier message: 01/02/2006, 21h15
  3. Chaine trop longue
    Par valoji dans le forum Bases de données
    Réponses: 1
    Dernier message: 18/10/2005, 14h10
  4. Erreur ORA-01704 : constante de chaine trop longue
    Par verrec_s dans le forum Oracle
    Réponses: 22
    Dernier message: 13/12/2004, 15h30
  5. chaine trop longue pour envoyer en socket?
    Par jeje.r dans le forum C++Builder
    Réponses: 10
    Dernier message: 27/06/2003, 16h36

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