Postgres에서 구체화 된 뷰의 정의를 쿼리하는 방법이 궁금합니다. 참고로, 내가하고 싶은 것은 일반보기로 할 수있는 것과 매우 유사합니다.
SELECT * FROM information_schema.views WHERE table_name = 'some_view';
다음과 같은 열을 제공합니다.
table_catalog
table_schema
table_name
view_definition
check_option
is_updatable
is_insertable_into
is_trigger_updatable
is_trigger_deletable
is_trigger_insertable_into
구체화 된 뷰에 이것이 가능합니까?
지금까지의 연구에서 구체화 된 뷰는 information_schema에서 의도적으로 제외 된 것으로 보입니다.
information_schema는 SQL 표준에 존재하는 객체 만 표시 할 수 있습니다.
( http://www.postgresql.org/message-id/3794.1412980686@sss.pgh.pa.us )
그들은 information_schema에서 완전히 제외 된 것처럼 보이므로 어떻게 해야할지 모르겠지만 두 가지 방법이 있습니다.
- 특정 구체화 된 뷰가 존재하는지 쿼리합니다. (지금까지 내가 찾은 유일한 방법은 동일한 이름의 매트보기를 만들어보고 터지는 지 확인하는 것입니다.)
- 그런 다음 구체화 된보기의 정의 (의
view_definition
열과 유사)를 쿼리하십시오information_schema.views
.
SELECT to_regclass('some_schema.some_mat_view')
여부 를 테스트하는 빠른 방법에 관심이있을 것입니다 .-발견 된 경우 MV 일 필요는 없습니다. 세부 사항 : stackoverflow.com/questions/20582500/…