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.

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


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.


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.