PostgreSQL 데이터베이스에서 공간 테이블 만 선택 하시겠습니까?


10

내 데이터베이스에 공간 및 비 공간 테이블이 모두 포함되어 있지만 쿼리에서 공간 테이블 만 검색하려고합니다.

공간 테이블 만 선택하는 제안. 'the_geom'은 공간 테이블의 기하학 열입니다.

그렇지 않으면 열 이름에서 테이블을 선택할 수 있습니다.

이 코드를 사용해 보았습니다 select relname from pg_stat_user_tables WHERE schemaname='public'. 그러나 이것으로부터 우리는 모든 테이블 이름을 얻습니다.

답변:


16

모든 공간 테이블 참조는 geometry_columns 메타 데이터 테이블에 보관됩니다. 그래서 시도하십시오 :

select * from geometry_columns

공간 테이블 만 가져와야합니다


대단히 감사합니다 ... 나는 간단한 것을 놓친 것 같습니다
Kishor

2
다른 코드를 받았습니다 SELECT table_name FROM information_schema.columns WHERE column_name = 'the_geom'
Kishor

yip- 그것은 먼 길입니다 :-)
mapoholic

나중에 맞습니다.
Kishor

@kishor, 당신은 당신의 의견을 "답변"으로 추가해야한다. 사람들이 그 의견이 확립 된 경우에도 mapoholic의 대답이 선호되는 방법이 될 수도있다.
RyanKDalton

2

짧은 길

select * from geometry_columns

더 깊은 길

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

geometry_columns의 정보가 삭제 된 경우에도 두 번째 옵션이 작동합니다. ogr2ogr 도구를 사용하여 데이터베이스를 공급 한 경우 'wkb_geometry'는 기하 데이터 열의 기본 이름입니다.


2

데이터베이스에서 공간 테이블 만 선택하는 또 하나 ..

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

이 코드를 사용하여 열 이름을 알고 테이블 정보를 검색 할 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.