web-dev-qa-db-fra.com

Peut-on créer des index uniques multicolonnes sur des bases de données MS Access?

Nous souhaitons éviter la duplication d’enregistrements dans notre base de données MS Access en utilisant un index unique multicolonne. En raison de la manière dont les données sont envoyées (via le réseau), des données en double sont parfois reçues. La source de données n'envoie pas d'identifiant unique. L'option la plus simple consiste donc à empêcher l'insertion d'enregistrements en double.

Selon Directives de conception d'index unique :

Avec les index uniques multicolonnes, l'index garantit que chaque combinaison de valeurs de la clé d'index est unique. Par exemple, si un index unique est créé sur une combinaison de colonnes LastName, FirstName et MiddleName, il ne peut y avoir deux lignes dans la table ayant la même combinaison de valeurs pour ces colonnes.

Ceci est pour SQL 2005 cependant, donc je ne suis pas sûr que ce soit possible avec MS Access.

Je suppose qu'une alternative est peut-être d'utiliser la requête (pseudo-code):

insert into foobar (a, b, c) values ('x', 'y', 'z')
where (a <> 'x') and (b <> 'y') and (c <> 'z')

... mais je me sens comme un index serait mieux.

26
Nick Bolton

Ouvrez la table en mode Création dans MS Access, sélectionnez les trois colonnes que vous souhaitez transformer en index unique, puis cliquez sur la petite clé de la barre d'outils. Vous ne pouvez pas avoir de valeur NULL dans une clé primaire (définie).

7
Fionnuala

Il s'avère que vous pouvezcréer un index unique multi-colonnes sur une base de données MS Access, mais c'est un peu fou si vous voulez le faire via l'interface graphique. Il y a aussi une limitation: vous ne pouvez utiliser que 10 colonnes par index.

Quoi qu'il en soit, voici comment créer un index unique multi-colonnes sur une base de données MS Access.

  1. Ouvrez la table en mode Création et Design, sélectionnez Indexes.
  2. Créez une nouvelle ligne et entrez une valeur dans la cellule Nom d'index,
  3. Choisissez la première colonne du menu déroulant.
  4. Ajoutez une nouvelle ligne et laissez la cellule Nom d’index vide.
  5. Choisissez la deuxième colonne, etc.

Voici à quoi cela devrait ressembler:

 multicolumn index in MS Access

45
Nick Bolton

Nous pouvons transformer les données multiples en données uniques sans les définir comme clé primaire. 

( Note : une seule donnée de la table peut être une clé primaire)

Étape pour définir la valeur de données en tant que données uniques (pour MS Access 2007 - 2010 )

  1. Ouvrir la table sélectionnée dans Mode Création
  2. Cliquez (mettez en surbrillance) la colonne/l'attribut spécifique que vous souhaitez définir comme unique.
  3. Au bas du tableau, vous verrez " Propriétés de l'index " pour cette colonne spécifique
  4. Recherchez la colonne " Indexée ", la donnée actuellement dans la zone de texte indexée est "Non", modifiez les données en cliquant à la fin de la zone de texte, choisissez " Oui (pas de doublons) "

J'espère vraiment que ces méthodes peuvent vous aider tous! :)

0
finazrosli