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 pouvoir utiliser un champ en tant qu’identifiant unique dans ArcGIS Pro, il ne doit pas comporter de valeur nulle, il doit contenir une valeur unique et son type de données doit être l’un des suivants :
- Entier (valeurs positives 32 et 64 bits uniquement)
- Chaîne
- GUID
- Date
- Date uniquement
- Heure uniquement
Les valeurs du champ doivent toujours être uniques et non nulles. Il est de votre responsabilité de garantir que les valeurs contenues dans ce champ respectent ces critères.
Remarque :
Vous recevrez une erreur si ArcGIS rencontre une valeur Null, mais ArcGIS n'impose pas l'unicité des valeurs dans le champ d'identifiant unique utilisé dans une couche de requête ou une table de base de données. Si ArcGIS détecte une valeur qui n’est pas unique, aucune erreur n’est renvoyée. Cependant, vous êtes susceptible d’obtenir des résultats incohérents dans les ensembles de sélection ou d’autres requêtes dans ArcGIS.
Lorsque vous faites glisser une table depuis une base de données relationnelle ou des entrepôts de données Cloud sur une carte ou lorsque vous validez la définition d’une couche de requête pour les données dans ces sources, ArcGIS définit le premier champ non nul qu’il trouve comme champ d’identifiant unique par défaut. Vous pouvez utiliser ce champ ou modifier la définition de requête et sélectionner un autre champ ou un ensemble de champs à utiliser comme identifiant unique.
Lorsque vous ajoutez une table depuis une base de données orientée document à une carte, ArcGIS Pro utilise automatiquement un champ de chaîne géré par le système (_id) comme ID d’objet.
Utiliser 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 aucun champ de la table de base de données ne peut être utilisé comme identifiant unique et si vous utilisez une base de données Dameng, IBM Db2, 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 d’entier d’identifiant unique à la table.
Si un seul champ de type chaîne est utilisé comme identifiant unique pour une table dans une base de données relationnelle ou un entrepôt de données Cloud, 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 ID d’objet ; 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.
Utiliser un identifiant unique composite
Vous pouvez choisir un seul champ ou plusieurs champs pour définir un identifiant unique. Si vous utilisez 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. Toutefois, si elles sont combinées, 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 lignes comme identiques et les apparie à la même valeur ESRI_OID.
Si la table contient déjà un champ nommé ESRI_OID, un attribut nommé ESRI_OID_1 est ajouté à la définition de la couche.
Remarque :
Ne publiez pas un service d’entités (couche d’entités Web) qui contient une couche de requête dotée d’un identifiant unique composite.
Vous avez un commentaire à formuler concernant cette rubrique ?