Tablas keyset en una geodatabase en PostgreSQL
Se utiliza una tabla keyset para almacenar una lista de filas seleccionadas cuando un cliente de ArcGIS Desktop ejecuta una consulta de relación de geodatabase que une tablas mediante atributos que son del tipo entero, número, fecha o cadena de caracteres.
Como se describe en Opciones de configuración de tabla de archivos de registro de ArcSDE para PostgreSQL, las tablas de archivos de registro almacenan los objectid de las entidades seleccionadas. Las tablas keyset se utilizan para acomodar las uniones mediante atributos diferentes a objectid.
Se crea una tabla keyset por conexión por sesión cuando hay más de 99 filas en el conjunto de selección fuente en la consulta de base de datos.
Tablas keyset en ArcGIS Desktop
No puede ver tablas keyset en ArcGIS Desktop. Sin embargo, genera que se cree y se complete una tabla keyset cuando selecciona más de 99 registros en una clase de entidad implicada en una clase de relación en ArcMap; luego abre la tabla de atributos y utiliza la lista Tablas relacionadas en el menú Opciones para recuperar la tabla relacionada. También genera que se cree una tabla keyset cuando inicia una sesión de edición.
Tablas keyset en una base de datos de PostgreSQL
En la geodatabase no hay tablas keyset presentes hasta que sucede uno o dos de los siguientes ítems:
- Se realiza una selección restringida mediante ArcGIS Desktop
- Comienza una sesión de edición
Cuando sucede cualquiera de estos dos ítems, se crea la tabla keyset como una tabla temporal global. En el primer caso, la tabla keyset se crea y se completa. En el segundo ejemplo, la tabla keyset sólo se crea pero no se completa hasta que se realiza un conjunto de selección restringida.
El nombre de la tabla keyset incluye el número de identificación del proceso de la sesión que provocó la creación de la tabla keyset. El formato es el siguiente:
keyset_<process_id>
La tabla keyset almacena un número de Id. de keyset para cada conjunto y valores de selección para el campo en el que se basa la relación entre las clases de entidad.
Como es una tabla temporal, la tabla keyset se elimina cuando el usuario se desconecta de la base de datos. Sin embargo, puede ver que los esquemas temporales creados por PostgreSQL para almacenar esta tabla permanecen. Tienen nombres como pg_temp_3.
La siguiente es una tabla keyset para una selección entre las tablas relacionadas LATERALS y CONTRACTORS. En este caso, el campo LONG_VAL está completo y contiene los valores del campo CONTRACTOR_ID en el cual se basa la clase de relación entre LATERALS y CONTRACTORS.
keyset_<process_id>
La siguiente es la definición de una tabla keyset en PostgreSQL:
Nombre de campo |
Tipo de campo |
Descripción |
¿Nulo? |
---|---|---|---|
keyset_id |
integer |
Identificador de la selección de keyset |
NO NULO |
long_val |
integer |
Valor del campo en el cual se basa la clase de relación si ese campo es un campo de número |
|
str_val |
varchar(256) |
Valor del campo en el cual se basa la clase de relación si ese campo es un campo de cadena de caracteres |
|
dbl_val |
doble |
Valor del campo en el cual se basa la clase de relación si ese campo es un campo de precisión doble |
|
date_val |
timestamp without time zone |
Valor del campo en el cual se basa la clase de relación si ese campo es un campo de fecha |
Tablas keyset en un documento de espacio de trabajo XML
Las tablas keyset no se almacenan en un documento XML porque son tablas temporales.