Selecionando apenas tabelas espaciais do banco de dados PostgreSQL?


10

Meu banco de dados contém tabelas espaciais e não espaciais, mas quero recuperar apenas a tabela espacial da consulta.

Alguma sugestão para selecionar apenas tabelas espaciais. 'the_geom' é a coluna de geometria na tabela espacial.

Caso contrário, é possível selecionar tabelas do nome da coluna.

Eu tentei com este código select relname from pg_stat_user_tables WHERE schemaname='public'; mas a partir disso obtemos todos os nomes de tabela.

Respostas:


16

Todas as referências de tabela espacial são mantidas na tabela de metadados geometry_columns. Então tente:

select * from geometry_columns

e você deve obter apenas as tabelas espaciais


Thank u muito ... Eu acho que eu tenha perdido uma coisa simples
Kishor

2
Eu tenho um outro código, SELECT table_name FROM information_schema.columns WHERE column_name = 'the_geom'
Kishor

yip- esse é o longo caminho :-)
mapoholic 8/08/2012

Você está certo.
Kishor

@kishor, você deve adicionar seu comentário como uma "resposta", para que as pessoas o vejam como uma opção também, mesmo que tenha sido estabelecido que a resposta de mapoholic pode ser o método preferido.
RyanKDalton

2

Atalho

select * from geometry_columns

Maneira mais profunda

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

A segunda opção deve funcionar mesmo que as informações de geometry_columns tenham sido excluídas. O 'wkb_geometry' é o nome padrão das colunas de dados da geometria se você usou a ferramenta ogr2ogr para alimentar seu banco de dados.


2

Outro para selecionar apenas tabelas espaciais no banco de dados.

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

Usando esse código, também podemos recuperar as informações da tabela sabendo o nome da coluna.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.