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

 Firebird Discussion :

index multiple


Sujet :

Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2004
    Messages : 74
    Par défaut index multiple
    Bonjour!

    J'ai remarqué dans FireBird que lorsqu'on veut faire une integrité référentielle entre 2 tables, il nous oblige à mettre les clés voyagé comme index. Dans mon cas, ca me fait des index répétitif ainsi que plusieurs index multiples. (Alors que je croyais qu'il fallait en avoir un seul maximum par table). Est ce qu'on peut enlever ces indices qu'ils nous mettent automatiquement d'une certaine manière?

    Aussi, les index qu'ils font sur les clé primaire, on ne pourrais pas choisir l'ordre des champs dans le cas des index multiples?

    Merci

  2. #2
    Membre Expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 052
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 052
    Par défaut
    Lors de le création d'une clé étrangère, n'importe quel SGBD digne de ce nom va créer un index afin pour des raison évidentes de performance. Si vous de votre coté vous en avez créés des indexs indentiques, libre à vous de les supprimer (les votres pas les indexes 'techniques' des cles etrangères)

    Ensuite pour les index multiples, l'ordres des champs est celui que vous avez spécifié lors de la création de cet index. Si vous voulez changer l'ordre détruisez votre index et recrééz le avec le bon ordre.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2004
    Messages : 74
    Par défaut
    Bonjour,

    Mon problème vient peut être du fait que la base de données à été mal construite à la base, mais ca je n’y peux rien. Je vais vous donner un exemple de mes index:

    PK: noCheque, idChequeDebiteur, idGroupe, idDossier, dateDepot
    FK: idDossier, idGroupe
    FK: idDossier, idGroupe, idChequeDebiteur
    FK: idChequeDebiteur

    Donc, je ne peux pas effacer l'index sur la PK, ca ne veut pas et c'est cet index là qui n'est pas dans le bon ordre.

    Et je ne peux pas non plus effacer les FK car ça veut pas:

    This operation is not defined for system tables.
    unsuccessful metadata update.
    ERASE RDB$INDICES failed.
    action cancelled by trigger (1) to preserve data integrity.
    Cannot delete index used by an Integrity Constraint.
    Et voilà, ca me fait 3 index multiples en plus. J'aimerais uniquement changer l'ordre de l'index sur la PK et enlever les autres index. C'est pas possible?

  4. #4
    Membre Expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 052
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 052
    Par défaut
    Vous faites quoi pour supprimer la PK ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE MaTable DROP CONSTRAINT NomContraintePK;

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2004
    Messages : 74
    Par défaut
    Bonjour,

    En fait, depuis le début, j'utilisais IBExpert. Je cliquais droit et je mettais DROP INDEX sur l'index de la PK. J'ai été dans les contraintes et j'ai effacé la clé primaire pour la refaire. Avec la requête que vous m'avez donné et ca a marché. MERCI!

    Maintenant, je veux garder les contraintes des FK mais enlever les index, car ils se repetent, ce n'est pas possible?

    Merci beaucoup

  6. #6
    Membre Expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 052
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 052
    Par défaut
    Ne touchez pas aux index créés par le FK. La FK en a besoin et ne saura pas utiliser ceux que vous avez définis dans un index multiple.

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

Discussions similaires

  1. Index multiples avec TexShop
    Par cybzh dans le forum Bibliographies - Index - Glossaires
    Réponses: 2
    Dernier message: 11/04/2020, 12h52
  2. [Delphi 7] [DBase 4] Index multiple
    Par alainvh dans le forum Bases de données
    Réponses: 22
    Dernier message: 04/11/2016, 15h19
  3. Création d'index multiple
    Par callapa dans le forum Débuter
    Réponses: 7
    Dernier message: 08/08/2008, 11h47
  4. Index multiples sous Word 2007
    Par jreynaud40 dans le forum VBA Word
    Réponses: 0
    Dernier message: 10/10/2007, 09h44
  5. Dbase et index multiples
    Par jeff&Natacha dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 29/04/2005, 10h47

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