[postgresql] PostgreSQL에서 뷰의 CREATE VIEW 코드를 보는 방법은 무엇입니까?
PostgreSQL 명령 행 클라이언트를 사용하여보기를 작성하는 데 사용 된 코드를 쉽게 볼 수 있습니까?
SHOW CREATE VIEW
MySQL 과 같은 것 .
답변
여기를 다시 찾아야해서 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이 손실되고 다시 작성된 버전의보기 정의 만 읽을 수 있습니다.
모든보기가 다시 작성되는 것은 아니지만 하위 선택 또는 조인을 사용하면보기가 다시 작성됩니다.