Désinscription d'une colonne ST_Geometry
Si vous utilisez exclusivement SQL pour interagir avec les tables spatiales dans PostgreSQL ou SQLite, vous pouvez désinscrire la colonne ST_Geometry avant de supprimer la table spatiale. Si vous ne le faites pas, un enregistrement sera orphelin dans la table système ST_Geometry.
Désinscrire une colonne ST_Geometry dans PostgreSQL
Avant d'utiliser SQL pour supprimer une table contenant une colonne ST_Geometry inscrite, utilisez la fonction st_unregister_spatial_column pour la désinscrire.
La syntaxe de la fonction st_unregister_spatial_column est la suivante :
st_unregister_spatial_column(
'<database_name>',
'<schema_name>',
'<table_name>',
'<spatial_column_name>'
);
- Ouvrez une invite ou un shell de commande.
- Connectez-vous à un éditeur SQL en tant que propriétaire de la table, puis à la base de données qui contient la table pour laquelle vous souhaitez désinscrire la colonne ST_Geometry.
Dans cet exemple, l'utilisateur cleo se connecte à la base de données spatdat.
psql spatdat cleo
- A l'invite SQL, appelez la fonction st_unregister_spatial_column.
Ici, la colonne geo de la table waypoints dans la structure cleo est désinscrite :
SELECT sde.st_register_spatial_column( 'spatdat', 'cleo', 'waypoints', 'geo' );
Seul le propriétaire de la table peut désinscrire la colonne spatiale.
Désinscrire une colonne ST_Geometry dans SQLite
Avant d'utiliser SQL pour supprimer une table contenant une colonne ST_Geometry inscrite, utilisez DropGeometryMetadata pour la désinscrire.
Voici la syntaxe à utiliser pour DropGeometryMetadata :
DropGeometryMetadata(
<'main'|NULL>,
<table_name>
);
Lorsque vous vous connectez à SQLite via un client SQL, vous vous connectez à "main". Vous pouvez spécifier "main" ou utiliser "NULL", qui suppose que vous vous connectez à "main".
- Ouvrez un éditeur SQL et connectez-vous à votre base de données.
- Si vous n'avez pas encore chargé la bibliothèque ST_Geometry, effectuez cette opération.
- Utilisez DropGeometryMetadata pour désinscrire la colonne ST_Geometry.
Dans cet exemple, la colonne ST_Geometry dans la table hazardous_sites est désinscrite.
SELECT DropGeometryMetadata( 'main', 'hazardous_sites' );