J'ai une table T avec un ID de clé primaire et une clé étrangère f. F est-il indexé automatiquement lorsqu'il est spécifié en tant que clé étrangère? Ai-je besoin d'ajouter explicitement un index pour f?Est-ce que spécifier une clé étrangère en fait un index?
3
A
Répondre
5
Aucun index n'est créé donc oui, vous devez ajouter explicitement un index.
Édité pour ajouter ... Je devrais probablement ajouter que la table/colonne source pour les données de la table T doit avoir un index unique. Si vous essayez de créer un FK sur une colonne qui n'est pas un index unique (PK ou avec une contrainte UNIQUE), le FK ne peut pas être créé.
5
Non, c'est une contrainte, pas un index.
0
Dans le cas de la contrainte de clé étrangère, la clé étrangère f dans le tableau T serait une clé primaire dans la table référencée dit T2. Dans SQL Server, un index cluster serait automatiquement créé lors de la création de T2.
acclamations
Questions connexes
- 1. sqlalchemy créer une clé étrangère?
- 2. Créer clé étrangère SQL
- 3. Que fait le mot-clé PHP 'var'?
- 4. Que fait le mot clé COLLATE lors de la création d'un index sqlite?
- 5. SQL Suppression en cascade sans clé étrangère?
- 6. Comment définir une clé étrangère dans Mnesia
- 7. Django Forms Avec clé étrangère
- 8. Question de clé étrangère composite
- 9. Courant Nhibernate entité composée, spécifiez étrangère clé
- 10. Qu'est-ce qu'une clé étrangère?
- 11. Modification d'objets de clé étrangère
- 12. noms subsoniques ActiveRecord et propriété clé étrangère
- 13. Comment mapper une association un-à-un avec NHibernate en utilisant un générateur de clé étrangère?
- 14. MySQL change le type de clé étrangère
- 15. utiliser des modèles dans un projet séparé en tant que clé étrangère dans Django?
- 16. Problème avec la contrainte de clé étrangère
- 17. Que fait une déclaration "CALLBACK" en C?
- 18. Comment spécifier une valeur par défaut dynamique pour une clé dans un routeur, Zend Framework
- 19. NHibernate: Assurez-vous que la clé étrangère n'est pas nulle
- 20. Comment contourner cette contrainte de clé étrangère en ayant un nom unique?
- 21. Existe-t-il un moyen d'incrémenter automatiquement un champ Django par rapport à une clé étrangère?
- 22. Comment mapper une colonne de clé étrangère dans nhibernate?
- 23. Mappage d'une collection à plusieurs avec la clé étrangère vers la clé étrangère
- 24. Retirer les lignes non référencées par une clé étrangère
- 25. Django ModelForms: Essayer d'enregistrer un formulaire en utilisant une clé étrangère ID
- 26. Créer une clé étrangère pour les rôles ASP.Net table
- 27. Que fait === faire en PHP
- 28. Oracle toutes les références de clé étrangère
- 29. saveAll avec hasOne sauve vide étrangère clé
- 30. Que fait le mot-clé Call dans VB6?
Je voulais juste ajouter, vous avez besoin de ces index la plupart du temps pour les performances lorsque vous joignez les tables parent et enfant. Il devrait être une partie de routine de la création de votre clé étrangère pour créer également l'index à ce moment, sauf s'il y a une raison impérieuse de ne pas le faire. Je peux penser à très peu de fois quand je ne voudrais pas un index sur un champ de clé étrangère. – HLGEM