Sélection uniquement des tables spatiales dans la base de données PostgreSQL?


10

Ma base de données contient des tables spatiales et non spatiales, mais je souhaite récupérer uniquement la table spatiale de la requête.

Toutes les suggestions pour sélectionner uniquement des tables spatiales. 'the_geom' est la colonne de géométrie dans la table spatiale.

Sinon, est-il possible de sélectionner des tables dans son nom de colonne.

J'ai essayé avec ce code select relname from pg_stat_user_tables WHERE schemaname='public'; mais de là, nous obtenons tous les noms de table.

Réponses:


16

Toutes les références de table spatiale sont conservées dans la table de métadonnées geometry_columns. Essayez donc:

select * from geometry_columns

et vous devriez juste obtenir les tables spatiales


Merci beaucoup ... Je pense que j'ai raté une chose simple
Kishor

2
J'ai un autre code, SELECT table_name FROM information_schema.columns WHERE column_name = 'the_geom'
Kishor

yip- c'est le long chemin :-)
mapoholic

vous avez raison.
Kishor

@kishor, vous devez ajouter votre commentaire comme une "réponse", juste pour que les gens le voient aussi comme une option, même s'il a été établi que la réponse de mapoholic pourrait être la méthode préférée.
RyanKDalton

2

Chemin court

select * from geometry_columns

Une manière plus profonde

SELECT table_name FROM information_schema.columns WHERE column_name = 'the_geom' or column_name = 'wkb_geometry'

La deuxième option devrait fonctionner même si les informations de geometry_columns ont été supprimées. 'Wkb_geometry' est le nom par défaut des colonnes de données de géométrie si vous avez utilisé l'outil ogr2ogr pour alimenter votre base de données.


2

Un autre pour sélectionner uniquement les tables spatiales dans la base de données.

SELECT table_name FROM information_schema.columns WHERE column_name = 'the_geom'`

En utilisant ce code, nous pouvons également récupérer les informations de la table en connaissant le nom de sa colonne.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.