Toutes les tables et classes d'entités utilisées dans ArcGIS doivent contenir un champ qui identifie de manière unique chaque ligne ou entité.
Pour être utilisé comme identifiant unique dans ArcGIS, un champ ne doit pas avoir une valeur Null, le champ doit contenir des valeurs uniques et il doit être de l'un des types suivants :
- Entier (valeurs positives uniquement)
- Chaîne
- GUID
- Date
Puisque la valeur contenue dans le champ d'identifiant unique identifie de manière unique un objet de ligne ou d'entité dans ArcGIS, les valeurs spécifiées dans ce champ doivent toujours être uniques et ne doivent pas être nulles. Il est de votre responsabilité de garantir que les valeurs contenues dans ce champ respectent ce critère.
Lorsque vous faites glisser une table de base de données depuis l'arborescence du catalogue et la placez dans ArcMap ou lorsque vous validez la définition d'une couche de requête, ArcGIS définit le premier champ non nul qu'il trouve comme champ d'identifiant unique par défaut. Vous pouvez choisir ce champ, ou ouvrir l'ensemble de définition et choisir un autre champ ou ensemble de champs à utiliser comme identifiant unique. Pour plus d'informations, reportez-vous à la rubrique Sélection d'un champ d'identifiant unique.
Utilisation d'un seul champ comme identifiant unique
Si un seul champ de nombre entier est spécifié comme identifiant unique, ArcGIS utilise les valeurs contenues dans ce champ pour identifier de façon unique toutes les entités et toutes les lignes de la table de base de données.
Si votre table de base de données ne comporte aucun champ susceptible d'être utilisé comme identifiant unique, et si vous utilisez une base de données Microsoft SQL Server, Oracle ou PostgreSQL, vous pouvez exécuter l'outil de géotraitement Ajouter un champ d'ID incrémentiel pour ajouter un champ de nombre entier d'identifiant unique à la table.
Si un seul champ de type chaîne est utilisé comme identifiant unique, ArcGIS doit apparier ces valeurs uniques à un nombre entier. Cette opération s'effectue dans ArcGIS à chaque fois que le système a besoin d'un attribut ObjectID ; par exemple, lors de la création d'une sélection de carte ou de l'ouverture de la table attributaire. ArcGIS ajoute un attribut nommé ESRI_OID et stocke à l'intérieur une valeur d'entier unique. Cet attribut fait uniquement partie de la définition de la couche ; la table de base de données sous-jacente n'est pas modifiée.
Utilisation d'un identifiant unique composite
Vous pouvez choisir un seul champ ou plusieurs champs pour définir un identifiant unique. Si vous décidez d'utiliser plusieurs champs, les valeurs combinées dans ces champs doivent être uniques. L'exemple suivant montre deux champs de texte : nom_membre et date_inscription. Prises individuellement, les valeurs de ces champs peuvent ne pas être uniques. Mais lorsqu'elles sont utilisées ensemble, les valeurs sont uniques, comme illustré ici :
nom_membre | date_inscription |
---|---|
alfred | 2006-09-28 10:15:41 |
dewey | 2006-09-28 10:15:56 |
johnson | 2000-02-19 09:14:50 |
johnson | 2004-12-08 11:02:32 |
mujan | 2011-07-07 12:44:21 |
La combinaison de ces valeurs sera utilisée en tant que clé de génération d'une valeur entière unique, qui sera stockée dans un attribut nommé ESRI_OID. Cet attribut fait uniquement partie de la définition de la couche ; la table de base de données sous-jacente n'est pas modifiée.
La définition de la couche pour l'exemple précédent inclurait une colonne ESRI_OID, comme illustré ici :
nom_membre | date_inscription | ESRI_OID |
---|---|---|
alfred | 2006-09-28 10:15:41 | 1 |
dewey | 2006-09-28 10:15:56 | 2 |
johnson | 2000-02-19 09:14:50 | 3 |
johnson | 2004-12-08 11:02:32 | 4 |
mujan | 2011-07-07 12:44:21 | 5 |
Notez que si les valeurs combinées des champs ou du champ de texte individuel que vous spécifiez ne sont pas uniques, ArcGIS considère ces enregistrements comme identiques et les mappera à la même valeur ESRI_OID.
Si votre table contient déjà un champ nommé ESRI_OID, un attribut nommé ESRI_OID_1 est ajouté à la définition de la couche.