Si usa SQL exclusivamente para interaccionar con las tablas espaciales en PostgreSQL o SQLite, puede dar de baja la columna ST_Geometry antes de eliminar una tabla espacial. Si no lo hace, un registro quedará huérfano en la tabla de sistema de ST_Geometry.
Dar de baja una columna ST_Geometry en PostgreSQL
Antes de usar SQL para eliminar una tabla que contenga una columna ST_Geometry registrada, use la función st_unregister_spatial_column para darla de baja.
A continuación se muestra la sintaxis de la función st_unregister_spatial_column:
st_unregister_spatial_column(
'<database_name>',
'<schema_name>',
'<table_name>',
'<spatial_column_name>'
);
- Abra una ventana de comando o un shell.
- Inicie sesión en un editor SQL como propietario de la tabla y conéctese a la base de datos que contiene la tabla para la que desea dar de baja la columna ST_Geometry.
En este ejemplo, la usuaria cleo se conecta a la base de datos spatdat.
psql spatdat cleo
- En la ventana de comando de SQL, invoque la función st_unregister_spatial_column.
Aquí, la columna geo de la tabla de puntos de referencia del esquema cleo se ha dado de baja:
SELECT sde.st_register_spatial_column( 'spatdat', 'cleo', 'waypoints', 'geo' );
Solo el propietario de la tabla puede dar de baja la columna espacial.
Dar de baja una columna ST_Geometry en SQLite
Antes de usar SQL para eliminar una tabla que contenga una columna ST_Geometry registrada, use DropGeometryMetadata para darla de baja.
A continuación se muestra la sintaxis de DropGeometryMetadata:
DropGeometryMetadata(
<'main'|NULL>,
<table_name>
);
Cuando se conecte a SQLite a través de un cliente de SQL, se conectará a main. Puede especificar main o usar NULL, que presupone que se está conectando a main.
- Abra un editor SQL y conéctese a la base de datos.
- Si aún no ha cargado la biblioteca ST_Geometry, hágalo ahora.
- Use DropGeometryMetadata para dar de baja la columna ST_Geometry.
En este ejemplo, la columna ST_Geometry de la tabla hazardous_sites se ha dado de baja.
SELECT DropGeometryMetadata( 'main', 'hazardous_sites' );