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 utilizar un campo como identificador único en las aplicaciones de escritorio de ArcGIS, el campo no debe ser nulo, debe contener valores únicos y ser de uno de estos tipos de datos:

  • Entero (solo valores positivos de 32 y 64 bits)
  • Cadena
  • GUID
  • Fecha

Los valores de ese campo deben ser siempre únicos y no nulos. Es su responsabilidad garantizar que los valores en este campo cumplan con estos requisitos.

Nota:

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.

Para publicar la capa de consulta en una capa de entidades (un servicio de entidades) que haga referencia al almacén de datos registrado, el Id. debe ser un campo de tipo entero único, no nulo y autoincrementado de 32 bits.

Si arrastra una tabla de base de datos a un mapa o valida una definición de capa de consulta, ArcGIS define el primer campo no nulo que encuentra como el campo de identificador único de manera predeterminada. Puede usar este campo o modificar la definición de consulta y elegir otro campo o conjunto de campos para utilizarlos como identificador único.

Usar un solo campo 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 Dameng, IBM Db2, Microsoft SQL Server, Oracle o PostgreSQL, puede ejecutar la herramienta de geoprocesamiento Agregar campo Id. en aumento para agregar un campo de tipo 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 Id. de objeto, 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_surnamesignup_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_surnamesignup_dateESRI_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 especifique no son únicos, ArcGIS interpreta estas filas como iguales y les asignará el 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.

Nota:

No puede publicar un servicio de entidades editable (capa de entidades web) que contenga una clase de entidad con un identificador único compuesto.