Gestion de la clé primaire et doublons


Lors de l'exportation d'un tableau, en fichier MS Access™ MDB, il est possible de définir la colonne 1 comme clé primaire de la table.

Dans ce cas, les doublons dans la colonne 1 sont déconseillés, car ils ne seront pas exportés dans la table.

Soit l'exemple suivant:



Nomenclature dans le schéma


Il y a 2 produits qui ont le même code TF458. En effet, les fabricants ne se concertent pas entre eux pour garantir l'unicité des codes.

         
Si la colonne 1 est la clé primaire de la table

Dans ce cas:

- La code ( = contenu de la colonne 1 ) doit être unique.
- Le code ne peut être vide.

Lors de la création de la table, dans le fichier Access™ MDB, la ligne 2 sera absente, puisque le code TF458 est déjà utilisé.
Un avertissement sera alors généré dans le Journal:

1 - Avertissement n° 1
Echec ( Ajout d'une ligne )
Modifications non effectuées: risque de doublons dans champs index, clé principale ou relation interdisant les doublons. Modifiez les données des champs contenant les doublons, enlevez ou redéfinissez l'index pour permettre les doublons et recommencez
Requete SQL: INSERT INTO NOMENCLATURE (C1, C2, C3, C4) VALUES ('TF458', 'RAIL', 'LEGRAND', 'Rail')


Cela peut se controler dans la table, dans Access™:


La nomenclature dans Access, avec colonne 1 = clé primaire

La colonne 1 est bien la clé primaire de la table. Les doublons sont donc interdits. La ligne 2 de la nomenclature est donc absente.

         
Si la colonne 1 n'est pas la clé primaire de la table

Dans ce cas, il n'y a pas de clé primaire dans la table. Ce qui, selon l'utilisation interne réalisée après, peut être un handicap.


La nomenclature dans Access, sans clé primaire définie

Dans ce cas, la table ne contient pas de clé primaire, et toutes les lignes de la nomenclature sont bien présentes. Les doublons sont autorisés.

Précisions techniques

- Pour créer une clé primaire unique, la requête SQL de création de table contient : " NOT NULL PRIMARY KEY ".

-
Définition: Clé primaire ( simple ) : Dans une table, un ou plusieurs champs utilisé pour identifier un enregistrement de façon unique. Par conséquent, il ne peut y avoir ni des doublons, ni des valeurs nulles au niveau de la clé primaire.

-
Définition: Clé primaire ( complexe ) : Dans une base de données relationnelle, une clé primaire est une contrainte d'unicité qui permet d'identifier de manière unique un enregistrement dans une table. Une clé primaire peut être composée d'un ou de plusieurs champs de la table. Deux lignes distinctes de la table ne peuvent pas avoir les mêmes valeurs pour les champs définis au niveau de la clé primaire. Il est possible de définir pour une même table plusieurs contraintes d'unicité, mais au plus une seule clé primaire.

La clé primaire d'une table doit se placer sur des champs qui permettent d'identifier chaque ligne de la table. Il peut donc sembler intéressant de placer une clé primaire sur un numéro de sécurité sociale par exemple, mais on préfèrera utiliser une clé primaire complètement indépendante des données métier, afin de s'assurer que le champ est toujours rempli (un étranger ou un enfant peuvent ne pas avoir de numéro de sécurité sociale) et n'évolue pas dans le temps. Toutes les bases de données proposent des mécanismes prenant en charge une numérotation utilisable pour les clés primaires. [ Source : Wikipédia ].