Nur räumliche Tabellen aus der PostgreSQL-Datenbank auswählen?


10

Meine Datenbank enthält sowohl räumliche als auch nicht räumliche Tabellen. Ich möchte jedoch nur räumliche Tabellen aus der Abfrage abrufen.

Vorschläge, nur räumliche Tabellen auszuwählen. 'the_geom' ist die Geometriespalte in der räumlichen Tabelle.

Andernfalls ist es möglich, Tabellen aus dem Spaltennamen auszuwählen.

Ich habe es mit diesem Code versucht select relname from pg_stat_user_tables WHERE schemaname='public'. aber daraus erhalten wir alle Tabellennamen.

Antworten:


16

Alle räumlichen Tabellenreferenzen werden in der Metadatentabelle geometr_spalten gespeichert. Also versuche:

select * from geometry_columns

und Sie sollten nur die räumlichen Tabellen erhalten


Vielen Dank ... Ich glaube, ich habe eine einfache Sache verpasst
Kishor

2
Ich habe einen anderen Code, SELECT table_name FROM information_schema.columns WHERE column_name = 'the_geom'
Kishor

yip- das ist der lange Weg :-)
mapoholic

ya, du bist richtig.
Kishor

@kishor, Sie sollten Ihren Kommentar als "Antwort" hinzufügen, damit die Leute ihn auch als Option sehen, selbst wenn festgestellt wurde, dass die Antwort von mapoholic die bevorzugte Methode sein kann.
RyanKDalton

2

Kurzer Weg

select * from geometry_columns

Tiefer Weg

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

Die zweite Option sollte auch dann funktionieren, wenn die Informationen von geometr_columns gelöscht wurden. Die 'wkb_geometry' ist der Standardname für Geometriedatenspalten, wenn Sie das ogr2ogr-Tool zum Zuführen Ihrer Datenbank verwendet haben.


2

Eine andere, um nur räumliche Tabellen in der Datenbank auszuwählen.

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

Mit diesem Code können wir auch Tabelleninformationen abrufen, indem wir den Spaltennamen kennen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.