OVH Cloud OVH Cloud

Clustered Index et Primary Key

3 réponses
Avatar
Marc
Quelle diff=E9rence existe-t'il entre une Primary Key et un=20
clustered unique index ? Pour moi, il n'y en n'a pas,=20
mais il doit y en avoir une car Entreprise Manager=20
affiche l'ic=F4ne d'une clef devant la colonne concern=E9e.

Vos avis ?

3 réponses

Avatar
David
on peut avoir un champ qui est 'unique' mais n'est pas clé
pour autant.

Il est certain que dans la très grande majorité des cas
une 'primarey key' est (et même doit être !) 'clustered'.

Cela dit il y a des cas où on peut être amené à utiliser
l'index clustered (il ne peut y en avoir qu'un par table
car trier physiquement dans l'ordre des valeurs) pour un
autre index que la clé. Par exemple on a une clé sur un n°
auto mais les requêtes qui exploitent la table utilise
presque exclusivement une (ou plusieurs) autre colonne
comme critère de sélection. On pourra alors mettre l'index
secondaire en clustered et le clé sera unique non-
clustered.

Une série de tables qui a des clés 'non-clustered' ou
des 'unique clustered' sans clé, c'est souvent une petite
lacune dans le script de création de ces tables... :-)

David

-----Message d'origine-----
Quelle différence existe-t'il entre une Primary Key et un
clustered unique index ? Pour moi, il n'y en n'a pas,
mais il doit y en avoir une car Entreprise Manager
affiche l'icône d'une clef devant la colonne concernée.

Vos avis ?
.



Avatar
Fred BROUARD
Des différences fondamentales :
1)
Primary Key => pas de null
clustered unique index => null possible (mais un seul hélas).

En principe la norme SQL précise que dans le cas d'une contrainte d'unicité, si
les colonnes composant cette contrainte ne sont pas pourvues du NOT NULL alors
on peut mettre autant de lignes NULL sans pour autant violer la contrainte.
Sur ce point SQL n'est pas conforme à la norme !

2)
Seule la PK servira de lien d'intégrité référentielle, pas la contrainte d'unicité.


A +

--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************


Marc a écrit:
Quelle différence existe-t'il entre une Primary Key et un
clustered unique index ? Pour moi, il n'y en n'a pas,
mais il doit y en avoir une car Entreprise Manager
affiche l'icône d'une clef devant la colonne concernée.

Vos avis ?


Avatar
bruno reiter [MVP]
primary key est une contrainte
clustered index n'est qu'un index

un index unique (pas forcement clustered) est créé pour des raisons
techniques quand on crée une contrainte PK, cet index ne peut etre supprimé
directement, il l'est automatiquement quand on supprime la contrainte.

br

"Marc" wrote in message
news:380b01c4a49b$6c54f610$
Quelle différence existe-t'il entre une Primary Key et un
clustered unique index ? Pour moi, il n'y en n'a pas,
mais il doit y en avoir une car Entreprise Manager
affiche l'icône d'une clef devant la colonne concernée.

Vos avis ?