[postgresql] PostgreSQL에서 뷰의 CREATE VIEW 코드를 보는 방법은 무엇입니까?

PostgreSQL 명령 행 클라이언트를 사용하여보기를 작성하는 데 사용 된 코드를 쉽게 볼 수 있습니까?

SHOW CREATE VIEWMySQL 과 같은 것 .



답변

여기를 다시 찾아야해서 pg_get_viewdef(기억하는 방법 !!) 좀 더 기억에 남는 명령을 찾아서 얻었습니다.

\d+ viewname

\?pgsql 명령 줄 에 입력 하면 비슷한 종류의 명령을 볼 수 있습니다 .

보너스 팁 : emacs 명령 sql-postgres은 pgsql을 훨씬 더 즐겁게 만듭니다 (편집, 복사, 붙여 넣기, 명령 기록).


답변

select pg_get_viewdef('viewname', true)

이러한 모든 기능의 목록은 매뉴얼에서 사용 가능합니다.

http://www.postgresql.org/docs/current/static/functions-info.html


답변

select definition from pg_views where viewname = 'my_view'


답변

ANSI SQL-92 버전을 원하는 경우 :

select view_definition from information_schema.views where table_name = 'view_name';


답변

v.9.6 이상의 GoodNews에서 View 편집은 psql에서 기본 제공됩니다. 그냥 호출 \ev명령. 보기 정의가 구성된 편집기에 표시됩니다.

julian@assange=# \ev {your_view_names}

보너스. 쿼리 버퍼와 상호 작용하는 유용한 명령입니다.

Query Buffer
  \e [FILE] [LINE]       edit the query buffer (or file) with external editor
  \ef [FUNCNAME [LINE]]  edit function definition with external editor
  \ev [VIEWNAME [LINE]]  edit view definition with external editor
  \p                     show the contents of the query buffer
  \r                     reset (clear) the query buffer
  \s [FILE]              display history or save it to file
  \w FILE                write query buffer to file


답변

이것들은 지적해야 할 작은 것입니다.
pg_get_viewdef 또는 pg_views 또는 information_schema.views 함수를 사용하면 항상 원래 DDL의 다시 작성된 버전얻게됩니다 .
재 증명 된 버전은 원래 DDL 스크립트와 같거나 같지 않을 수 있습니다.

규칙 관리자가보기 정의를 다시 작성하면 원래 DLL이 손실되고 다시 작성된 버전의보기 정의 만 읽을 수 있습니다.
모든보기가 다시 작성되는 것은 아니지만 하위 선택 또는 조인을 사용하면보기가 다시 작성됩니다.


답변