PostgreSQL veritabanından yalnızca Spatial tabloları mı seçiyorsunuz?


10

Veritabanım hem Uzamsal hem de Uzamsal olmayan tablolar içeriyor, ancak sorgudan yalnızca Uzamsal tablo almak istiyorum.

Yalnızca Uzamsal tabloları seçmek için herhangi bir öneri. 'the_geom', uzamsal tablodaki geometri sütunudur.

Aksi takdirde, sütun adından tablo seçmek mümkündür.

Bu kod ile denedim select relname from pg_stat_user_tables WHERE schemaname='public'; ancak bundan tüm tablo isimlerini alıyoruz.

Yanıtlar:


16

Tüm uzamsal tablo başvuruları geometry_columns meta veri tablosunda tutulur. O zaman dene:

select * from geometry_columns

ve sadece uzamsal tabloları almalısın


Çok teşekkür ederim ... Ben basit bir şey kaçırdım düşünüyorum
Kishor

2
Başka bir kod aldım, SELECT table_name FROM information_schema.columns WHERE column_name = 'the_geom'
Kishor

yip- uzun yol :-)
mapoholic

Evet, haklısın.
Kishor

@kishor, yorumunuzu bir "cevap" olarak eklemelisiniz, böylece insanlar da bunu bir seçenek olarak görmelidir, mapoholic'in cevabının tercih edilen yöntem olabileceği tespit edilmiş olsa bile.
RyanKDalton

2

Kısa yol

select * from geometry_columns

Daha derin bir yol

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

İkinci seçenek, geometry_columns bilgileri silinmiş olsa bile çalışmalıdır. Veritabanınızı beslemek için ogr2ogr aracını kullandıysanız, 'wkb_geometry' geometri veri sütunlarının varsayılan adıdır.


2

Başka bir veritabanında sadece uzamsal tabloları seçmek için ..

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

Bu kodu kullanarak, sütun adını bilerek tablo bilgilerini de alabiliriz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.