Вибір лише просторових таблиць із бази даних PostgreSQL?


10

Моя база даних містить і просторові, і непросторові таблиці, але я хочу отримати лише запит просторової таблиці з запиту.

Будь-які пропозиції вибрати лише просторові таблиці. 'the_geom' - це стовпчик геометрії в просторовій таблиці.

В іншому випадку, чи можна вибрати таблиці з його назви стовпців.

Я спробував з цим кодом select relname from pg_stat_user_tables WHERE schemaname='public'; але з цього ми отримуємо всі назви таблиць.

Відповіді:


16

Всі посилання на просторові таблиці зберігаються в таблиці метаданих geometry_column. Тому спробуйте:

select * from geometry_columns

і вам слід отримати просто просторові таблиці


Дуже дякую ... Я думаю, що я пропустив просту річ
Кішор

2
Я отримав ще один код, SELECT table_name FROM information_schema.columns WHERE column_name = 'the_geom'
Кішор

yip- це довгий шлях :-)
мапоголік

так, ти маєш рацію.
Кішор

@kishor, ви повинні додати свій коментар як "відповідь", так що люди також бачать його як варіант, навіть якщо встановлено, що відповідь мапоголіка може бути кращим методом.
RyanKDalton

2

Короткий шлях

select * from geometry_columns

Глибший шлях

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

Другий варіант повинен працювати навіть у тому випадку, якщо інформація з геометричних стовпців була видалена. 'Wkb_geometry' - це за замовчуванням назва стовпців даних про геометрію, якщо ви використовували інструмент ogr2ogr для подачі вашої бази даних.


2

Ще один для вибору лише просторових таблиць у базі даних ..

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

За допомогою цього коду ми також можемо отримати інформацію таблиці, знаючи її назву стовпця.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.