Editar datos de una geodatabase no versionada en PostgreSQL con SQL

Puede utilizar SQL para actualizar, insertar datos y eliminar datos de tablas no versionadas en la geodatabase si no participan en el comportamiento de la geodatabase. Consulte ¿Qué tipo de datos puede editarse con SQL? para obtener información sobre los tipos de datos y comportamiento de la base de datos que no puede editar con SQL.

Todos los datos que se registran con la geodatabase tienen un campo ObjectID (Id. de fila) único, no nulo, mantenido por el sistema. Cuando utiliza SQL para insertar registros en las tablas no versionadas en la geodatabase, debe proporcionar un valor único para ObjectID.

Para obtener esta información, haga una consulta a la tabla sde_table_registry del sistema de ArcSDE para obtener el Id. de registro de la tabla en la cual desea insertar un registro. Una vez que tiene el Id. de registro, puede identificar la tabla i correspondiente de la tabla porque las tablas i están asociadas con la tabla de negocios a través del Id. de registro. La tabla i se almacena en el esquema del usuario que es propietario de la tabla correspondiente.

Incluya la función Next_RowID en una sentencia de inserción para llenar el campo ObjectID con el siguiente valor válido.

NotaNota:

El próximo ObjectID disponible no es necesariamente el siguiente número secuencial después del último ObjectID insertado. Los ObjectID para algunas aplicaciones cliente se asignan en lotes, de modo que el siguiente ObjectID puede ser un número mucho mayor que el último que usó. Además, cualquier ObjectID del lote no utilizado se devuelve al grupo de valores disponibles, lo que significa que el siguiente valor de ObjectID disponible puede realmente ser un número menor que el último que insertó.

Pasos:
  1. Inicie sesión en la base de datos desde un editor de SQL, como psql.

    Asegúrese de iniciar sesión en la base de datos como un usuario que tiene permiso para editar los datos.

  2. Utilice la función Next_RowID para llenar el campo ObjectID.

    En este ejemplo, la columna site_id es el campo ObjectID, la tabla es outbreak y la tabla está almacenada en el esquema hmoot.

    INSERT INTO hmoot.outbreak (site_id, med_code,num_affected, shape)  VALUES  (sde.next_rowid('hmoot', 'outbreak'),  'v-22a',  3,  ST_Point('point (12 36))', 12);
    
  3. Puede continuar editando o, si ya terminó, puede confirmar las modificaciones en la base de datos.

Temas relacionados

9/11/2013