Campos de identificador único en las tablas de bases de datos
Todas las tablas y las clases de entidad utilizadas en ArcGIS deben contener un campo que identifique de forma única cada fila o entidad.
Para que se pueda usar como identificador único en ArcGIS, un campo debe no ser nulo, contener valores únicos y ser uno de los siguientes tipos de datos:
- entero (solo valores positivos)
- cadena de caracteres
- GUID
- fecha
Como el valor en el campo de identificador único identifica unívocamente una fila o un objeto de entidad dentro de ArcGIS, los valores en ese campo deben ser siempre únicos y no nulos. Es su responsabilidad garantizar que los valores en este campo cumplan con este requisito.
Aparecerá un error si ArcGIS encuentra un valor nulo, pero ArcGIS no impone la unicidad de los valores en el campo de identificador único empleado en una capa de consulta o una tabla de base de datos. Si ArcGIS se encuentra con un valor que no es único, no se devuelve error alguno; sin embargo, puede ver resultados incoherentes en conjuntos de selecciones o en otras consultas en ArcGIS.
Si se arrastra una tabla de base de datos desde el árbol de catálogo y se coloca en ArcMap o se valida una definición de capa de consulta, ArGIS define el primer campo no nulo como campo de identificador único de manera predeterminada. Puede usar este campo o abrir la definición de consulta y elegir un campo o un conjunto de campos diferente para utilizarlo como identificador único. Consulte Elegir un campo de identificador único para obtener instrucciones.
Usar un campo simple como identificador único
Si se especifica un campo entero simple como identificador único, ArcGIS utiliza los valores de ese campo directamente para identificar de manera única todas las entidades y filas de la tabla de base de datos.
Si la tabla de base de datos no contiene un campo que se pueda usar como identificador único y se usa una base de datos de Microsoft SQL Server, Oracle o PostgreSQL, puede ejecutar la herramienta de geoprocesamiento Agregar campo de Id. en aumento para agregar un campo entero de identificador único a la tabla.
Si se usa un campo de cadena de caracteres simple como identificador único, ArcGIS debe asignar esos valores únicos a un entero. Esto se suele realizar en ArcGIS cada vez que el sistema necesita un atributo de ObjectID, como cuando se crea una selección de mapa o se abre la tabla de atributos. ArcGIS agrega un atributo llamado ESRI_OID y almacena en él un valor entero único. Este atributo solo forma parte de la definición de la capa; la tabla de base de datos subyacente no se altera.
Usar un identificador único compuesto
Puede elegir uno o varios campos para definir un identificador único. Si opta por usar varios campos, los valores combinados de esos campos deben ser únicos. El siguiente ejemplo muestra dos campos de texto, member_surname y signup_date. Por separado, los valores de estos campos podrían no ser únicos. Pero, usados en combinación, los valores son únicos, como se muestra aquí:
member_surname | signup_date |
---|---|
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 combinación de estos valores se usará como clave para generar un valor entero único que se almacenará en un atributo denominado ESRI_OID. Este atributo solo forma parte de la definición de la capa; la tabla de base de datos subyacente no se altera.
La definición de capa del ejemplo anterior incluiría una columna ESRI_OID, como se muestra aquí:
member_surname | signup_date | 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 |
Tenga en cuenta que si los valores combinados de los campos o el campo de texto individual que se especifiquen no son únicos, ArcGIS verá estos registros como el mismo y los asignará al mismo valor de ESRI_OID.
Si la tabla ya contiene un campo llamado ESRI_OID, se añade a la definición de capa un atributo denominado ESRI_OID_1.
No puede publicar una clase de entidad que usa un identificador único compuesto como servicio de entidades editables.