Chỉ chọn các bảng không gian từ cơ sở dữ liệu PostgreSQL?


10

Cơ sở dữ liệu của tôi chứa cả bảng Spatial và Non-Spatial, nhưng tôi muốn chỉ lấy bảng Spatial từ truy vấn.

Bất kỳ đề xuất để chỉ chọn các bảng không gian. 'the_geom' là cột hình học trong bảng không gian.

Mặt khác, có thể chọn các bảng từ tên cột của nó.

Tôi đã thử với mã này select relname from pg_stat_user_tables WHERE schemaname='public'; nhưng từ đây chúng ta có được tất cả các tên bảng.

Câu trả lời:


16

Tất cả các tham chiếu bảng không gian được giữ trong bảng siêu dữ liệu hình học_columns. Hãy thử

select * from geometry_columns

và bạn chỉ nên lấy các bảng không gian


Cảm ơn bạn rất nhiều ... Tôi nghĩ rằng tôi đã bỏ lỡ một điều đơn giản
Kishor

2
Tôi đã nhận được một mã khác, SELECT table_name FROM information_schema.columns WHERE column_name = 'the_geom'
Kishor

yip- đó là con đường dài xung quanh :-)
mapoholic

ya, bạn đúng
Kishor

@kishor, bạn nên thêm nhận xét của mình dưới dạng "câu trả lời", để mọi người cũng xem đó là một tùy chọn, ngay cả khi nó được thiết lập rằng câu trả lời của mapoholic có thể là phương pháp ưa thích.
RyanKDalton

2

Cách ngắn

select * from geometry_columns

Cách sâu hơn

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

Tùy chọn thứ hai sẽ hoạt động ngay cả khi thông tin của hình học_column đã bị xóa. 'Wkb_geometry' là tên mặc định của các cột dữ liệu hình học nếu bạn đã sử dụng công cụ ogr2ogr để cung cấp cơ sở dữ liệu của mình.


2

Một số khác chỉ chọn các bảng không gian trong cơ sở dữ liệu ..

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

Sử dụng mã này, chúng tôi cũng có thể truy xuất thông tin bảng bằng cách biết tên cột của nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.