Selezionando solo tabelle spaziali dal database PostgreSQL?


10

Il mio database contiene tabelle sia spaziali che non spaziali, ma desidero recuperare solo la tabella spaziale dalla query.

Eventuali suggerimenti per selezionare solo tabelle spaziali. 'the_geom' è la colonna della geometria nella tabella spaziale.

Altrimenti, è possibile selezionare le tabelle dal nome della sua colonna.

Ho provato con questo codice select relname from pg_stat_user_tables WHERE schemaname='public'; ma da questo otteniamo tutti i nomi delle tabelle.

Risposte:


16

Tutti i riferimenti alla tabella spaziale sono contenuti nella tabella dei metadati geometry_columns. Allora prova:

select * from geometry_columns

e dovresti ottenere solo le tabelle spaziali


Grazie mille ... Penso di aver perso una cosa semplice
Kishor l'

2
Ho un altro codice, SELECT table_name FROM information_schema.columns WHERE column_name = 'the_geom'
Kishor l'

yip- questa è la lunga strada :-)
mapoholic

ya, hai ragione.
Kishor

@kishor, dovresti aggiungere il tuo commento come "risposta", così anche le persone lo vedono come un'opzione, anche se è stato stabilito che la risposta di mapoholic potrebbe essere il metodo preferito.
RyanKDalton,

2

Modo breve

select * from geometry_columns

Modo più profondo

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

La seconda opzione dovrebbe funzionare anche se le informazioni di geometry_columns sono state eliminate. 'Wkb_geometry' è il nome predefinito delle colonne di dati geometrici se hai utilizzato lo strumento ogr2ogr per alimentare il tuo database.


2

Un altro per selezionare solo le tabelle spaziali nel database.

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

Usando questo codice possiamo anche recuperare le informazioni sulla tabella conoscendone il nome della colonna.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.