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:

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.

Tabla keyset y tablas de negocios asociadas en PostgreSQL

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.

Temas relacionados


3/6/2012