Précédent   Forum des professionnels en informatique > Bases de données > Firebird > Débuter
Débuter Forum d'entraide pour débuter avec Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/04/2005, 22h44   #1
Nouveau Membre du Club
 
Inscription : décembre 2004
Messages : 74
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 74
Points : 25
Points : 25
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
mona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2005, 08h38   #2
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
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.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2005, 15h39   #3
Nouveau Membre du Club
 
Inscription : décembre 2004
Messages : 74
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 74
Points : 25
Points : 25
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:

Citation:
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?
mona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2005, 16h23   #4
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Vous faites quoi pour supprimer la PK ?

Code :
ALTER TABLE MaTable DROP CONSTRAINT NomContraintePK;
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2005, 16h37   #5
Nouveau Membre du Club
 
Inscription : décembre 2004
Messages : 74
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 74
Points : 25
Points : 25
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
mona est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2005, 19h45   #6
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
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.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h45.


 
 
 
 
Partenaires

Hébergement Web