Memilih hanya tabel Spasial dari database PostgreSQL?

10

Basis data saya berisi tabel Spasial dan Non-Spasial, tetapi saya hanya ingin mengambil tabel Spasial dari kueri.

Setiap saran untuk memilih hanya tabel Spasial. 'the_geom' adalah kolom geometri dalam tabel spasial.

Kalau tidak, apakah mungkin untuk memilih tabel dari nama kolomnya.

Saya mencoba dengan kode ini select relname from pg_stat_user_tables WHERE schemaname='public'; tetapi dari ini kita mendapatkan semua nama tabel.

Kishor
sumber

Jawaban:

16

Semua referensi tabel spasial disimpan dalam tabel metadata geometry_columns. Jadi cobalah:

select * from geometry_columns

dan Anda harus mendapatkan hanya tabel spasial

mapoholic
sumber
Terima kasih banyak ... Saya pikir saya telah melewatkan hal sederhana
Kishor
2
Saya mendapat kode lain, SELECT table_name FROM information_schema.columns WHERE column_name = 'the_geom'
Kishor
yip- itu jalan panjang sekitar :-)
mapoholic
ya kamu benar
Kishor
@kishor, Anda harus menambahkan komentar Anda sebagai "jawaban", supaya orang melihatnya sebagai pilihan juga, bahkan jika sudah ditetapkan bahwa jawaban mapoholic mungkin merupakan metode yang disukai.
RyanKDalton
2

Jalan pendek

select * from geometry_columns

Cara yang lebih dalam

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

Opsi kedua harus berfungsi bahkan jika informasi geometry_columns telah dihapus. 'Wkb_geometry' adalah nama default kolom data geometri jika Anda menggunakan alat ogr2ogr untuk memberi makan basis data Anda.

Jorge Arévalo
sumber
2

Satu lagi untuk memilih hanya tabel spasial dalam database ..

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

Dengan menggunakan kode ini, kami juga dapat mengambil info tabel dengan mengetahui nama kolomnya.

Kishor
sumber