이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 :토토 만들기버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

뷰 만들기

CREATE VIEW — 새 스포츠 토토 정의

시놉시스

생성 [ 또는 교체 ] [ 임시 | 임시 ] [ 재귀 ] 스포츠 토토이름 [ ( 열_이름[, ...] ) ]
    [ 와 (view_option_name [= view_option_value] [, ... ] ) ]
    그대로질의[ [계단식 | 로컬 ] 옵션 확인 ]

설명

뷰 만들기쿼리 스포츠 토토를 정의합니다. 뷰는 물리적으로 구체화되지 않습니다. 대신 쿼리에서 뷰가 참조될 때마다 쿼리가 실행됩니다.

스포츠 토토 생성 또는 교체비슷하지만 동일한 이름의 뷰가 이미 존재하는 경우 대체됩니다. 새 쿼리는 기존 보기 쿼리에서 생성된 것과 동일한 열(즉, 동일한 순서와 동일한 데이터 유형의 동일한 열 이름)을 생성해야 하지만 목록 끝에 추가 열을 추가할 수 있습니다. 출력 열을 발생시키는 계산은 완전히 다를 수 있습니다.

스키마 이름이 제공된 경우(예:CREATE VIEW myschema.myview ...) 그러면 지정된 스키마에 뷰가 생성됩니다. 그렇지 않으면 현재 스키마에 생성됩니다. 임시 뷰는 특수한 스키마에 존재하므로 임시 뷰 생성 시 스키마 이름을 지정할 수 없습니다. 뷰의 이름은 동일한 스키마에 있는 다른 뷰, 테이블, 시퀀스, 인덱스 또는 외부 테이블의 이름과 구별되어야 합니다.

매개변수

임시또는온도

지정되면 보기가 임시 보기로 생성됩니다. 임시 보기는 현재 세션이 끝나면 자동으로 삭제됩니다. 동일한 이름을 가진 기존 영구 관계는 스키마 수식 이름으로 참조되지 않는 한 임시 뷰가 존재하는 동안 현재 세션에 표시되지 않습니다.

뷰에서 참조하는 테이블 중 임시 테이블이 있으면 해당 뷰는 임시 뷰로 생성됩니다(여부임시지정 여부).

반복

재귀적 스포츠 토토를 생성합니다. 구문

재귀적 뷰 생성 [스키마 . ] view_name (열_이름) 선택으로...;

다음과 동일함

뷰 만들기 [스키마 . ] view_name재귀와 마찬가지로view_name (열_이름) AS (SELECT...) 선택열_이름발신view_name;

재귀 보기를 위해서는 보기 열 이름 목록을 지정해야 합니다.

이름

생성될 뷰의 이름(선택적으로 스키마 한정).

컬럼_이름

보기의 열에 사용될 선택적 이름 목록입니다. 지정하지 않으면 쿼리에서 열 이름이 추론됩니다.

함께 (view_option_name [= view_option_value] [, ... ] )

이 절은 보기에 대한 선택적 매개변수를 지정합니다. 다음 매개변수가 지원됩니다:

check_option (문자열)

이 매개변수는 다음 중 하나일 수 있습니다.현지또는계단식이며 다음을 지정하는 것과 동일합니다.[계단식 포함 | 로컬 ] 옵션 확인(아래 참조). 이 옵션은 다음을 사용하여 기존 보기에서 변경할 수 있습니다.변경 스포츠 토토.

security_barrier (부울)

뷰가 행 수준 보안을 제공하려는 경우 사용해야 합니다. 참조PostgreSQL : 문서 : 11 : 41.5. 토토 사이트 추천 및 특권자세한 내용은.

질의

A 선택또는뷰의 열과 행을 제공하는 명령입니다.

[계단식 포함 | 로컬 ] 옵션 확인

이 옵션은 자동으로 업데이트 가능한 스포츠 토토의 동작을 제어합니다. 이 옵션을 지정하면,삽입그리고업데이트새 행이 보기 정의 조건을 충족하는지 확인하기 위해 보기의 명령이 검사됩니다(즉, 새 행이 보기를 통해 표시되는지 확인하기 위해 검사됩니다). 그렇지 않은 경우 업데이트가 거부됩니다. 만약옵션 확인지정되지 않았습니다.삽입그리고업데이트보기의 명령은 보기를 통해 보이지 않는 행을 생성하도록 허용됩니다. 다음 확인 옵션이 지원됩니다.

로컬

새 행은 스포츠 토토 자체에 직접 정의된 조건에 대해서만 확인됩니다. 기본 기본 뷰에 정의된 모든 조건은 확인되지 않습니다(또한 지정하지 않는 한).옵션 확인).

연계됨

새 행은 스포츠 토토 및 모든 기본 스포츠 토토의 조건에 대해 검사됩니다. 만약옵션 확인지정되었지만 둘 다 아님로컬아니요연계됨지정된 경우연계됨가정됩니다.

옵션 확인다음과 함께 사용할 수 없습니다.반복조회수.

참고하세요옵션 확인자동으로 업데이트 가능한 보기에서만 지원되며 다음이 없습니다.대신트리거 또는대신규칙. 자동으로 업데이트 가능한 뷰가 기본 뷰 위에 정의된 경우대신트리거, 다음은로컬 확인 옵션자동으로 업데이트 가능한 보기의 조건을 확인하는 데 사용될 수 있지만 기본 보기의 조건은대신트리거는 확인되지 않습니다. 계단식 검사 옵션은 트리거 업데이트 가능 보기로 계단식으로 내려가지 않으며 트리거 업데이트 가능 보기에 직접 정의된 모든 확인 옵션은 무시됩니다. 뷰 또는 기본 관계 중 하나에 다음이 있는 경우대신다음을 유발하는 규칙삽입또는업데이트명령을 다시 작성하면 재작성된 쿼리에서 모든 확인 옵션이 무시됩니다. 여기에는 다음과의 관계 위에 정의된 자동 업데이트 가능 뷰의 모든 확인이 포함됩니다.대신규칙.

참고

다음을 사용하세요드롭 스포츠 토토뷰를 삭제하는 진술입니다.

보기 열의 이름과 유형이 원하는 방식으로 할당되도록 주의하십시오. 예를 들면:

'Hello World'를 선택하여 VIEW Vista 생성;

열 이름의 기본값이이므로 잘못된 형식입니다.?열?; 또한 열 데이터 유형의 기본값은텍스트, 원하는 내용이 아닐 수도 있습니다. 뷰 결과의 문자열 리터럴에 대한 더 나은 스타일은 다음과 같습니다.

CREATE VIEW vista AS SELECT 텍스트 'Hello World' AS hello;

뷰에서 참조된 테이블에 대한 액세스는 뷰 소유자의 권한에 따라 결정됩니다. 경우에 따라 이는 기본 테이블에 대한 안전하지만 제한된 액세스를 제공하는 데 사용될 수 있습니다. 그러나 모든 뷰가 변조로부터 안전한 것은 아닙니다. 참조PostgreSQL : 문서 : 11 : 41.5. 토토 사이트 추천 및 특권20922_21145

언제스포츠 토토 생성 또는 교체은 기존 보기에서 사용되며 보기의 정의 SELECT 규칙만 변경됩니다. 소유권, 권한, SELECT가 아닌 규칙을 포함한 기타 보기 속성은 변경되지 않고 그대로 유지됩니다. 뷰를 대체하려면 뷰를 소유해야 합니다(여기에는 소유 역할의 구성원이 되는 것도 포함됩니다).

업데이트 가능한 보기

간단한 보기는 자동으로 업데이트 가능합니다. 시스템이 허용합니다.삽입, 업데이트그리고삭제문은 일반 테이블에서와 같은 방식으로 뷰에서 사용됩니다. 다음 조건을 모두 충족하면 뷰가 자동으로 업데이트 가능합니다.

  • 뷰에는 정확히 하나의 항목이 있어야 합니다.발신목록, 테이블 또는 업데이트 가능한 다른 뷰여야 합니다.

  • 보기 정의에는 다음이 포함되어서는 안 됩니다.위드, 독특, 그룹별, 가지고 있는 중, 제한또는오프셋최상위 수준의 조항.

  • 스포츠 토토 정의에는 집합 작업이 포함되어서는 안 됩니다(유니온, INTERSECT또는제외) 최상위 수준에 있습니다.

  • 뷰의 선택 목록에는 집계, 창 함수 또는 집합 반환 함수가 포함되어서는 안 됩니다.

자동으로 업데이트 가능한 보기에는 업데이트 가능한 열과 업데이트 불가능한 열이 혼합되어 포함될 수 있습니다. 기본 관계의 업데이트 가능한 열에 대한 단순 참조인 경우 열은 업데이트 가능합니다. 그렇지 않으면 열이 읽기 전용이고 다음과 같은 경우 오류가 발생합니다.삽입또는업데이트문이 값을 할당하려고 시도합니다.

뷰가 자동으로 업데이트 가능한 경우 시스템은 무엇이든 변환합니다.삽입, 업데이트또는삭제기본 기본 관계에 대한 해당 진술에 대한 관점의 진술.삽입다음이 있는 문충돌 업데이트 중절이 완전히 지원됩니다.

자동으로 업데이트 가능한 보기에 다음이 포함된 경우어디조건, 이 조건은 수정할 수 있는 기본 관계의 행을 제한합니다.업데이트그리고삭제뷰에 대한 설명입니다. 그러나,업데이트더 이상 만족하지 않도록 행을 변경할 수 있습니다.어디조건이므로 더 이상 뷰를 통해 볼 수 없습니다. 마찬가지로,삽입명령은 잠재적으로 다음을 만족하지 않는 기본 관계 행을 삽입할 수 있습니다.어디조건이므로 뷰를 통해 볼 수 없습니다(충돌 업데이트 중뷰를 통해 표시되지 않는 기존 행에도 유사하게 영향을 미칠 수 있습니다).옵션 확인방지하는 데 사용될 수 있습니다.삽입그리고업데이트뷰를 통해 보이지 않는 행을 생성하는 명령입니다.

자동으로 업데이트 가능한 보기가 다음으로 표시된 경우security_barrier속성 다음 모든 뷰어디에서조건(및 다음으로 표시된 연산자를 사용하는 모든 조건누출방지)는 항상 뷰 사용자가 추가한 조건보다 먼저 평가됩니다. 참조PostgreSQL : 문서 : 11 : 41.5. 토토 사이트 추천 및 특권25419_25540어디조건)은 여전히 잠겨 있을 수 있습니다.설명관계 수준에서 적용되는 조건(따라서 행을 잠그지 않음)과 적용되지 않는 조건을 확인하는 데 사용할 수 있습니다.

이러한 모든 조건을 충족하지 않는 더 복잡한 보기는 기본적으로 읽기 전용입니다. 시스템은 보기에 대한 삽입, 업데이트 또는 삭제를 허용하지 않습니다. 다음을 생성하여 업데이트 가능한 뷰의 효과를 얻을 수 있습니다.대신뷰에서 시도된 삽입 등을 다른 테이블에 대한 적절한 작업으로 변환해야 하는 뷰에 대한 트리거입니다. 자세한 내용은 참조트리거 생성. 또 다른 가능성은 규칙을 만드는 것입니다(참조규칙 생성), 그러나 실제로는 트리거가 이해하기 쉽고 올바르게 사용하기가 더 쉽습니다.

뷰에서 삽입, 업데이트 또는 삭제를 수행하는 사용자는 뷰에 대해 해당 삽입, 업데이트 또는 삭제 권한을 가지고 있어야 합니다. 또한 뷰의 소유자는 기본 기본 관계에 대한 관련 권한을 가지고 있어야 하지만 업데이트를 수행하는 사용자에게는 기본 기본 관계에 대한 권한이 필요하지 않습니다(참조)PostgreSQL : 문서 : 11 : 41.5. 토토 사이트 추천 및 특권).

모든 코미디 영화로 구성된 뷰 생성:

다음으로 코미디 스포츠 토토 만들기
    선택 *
    영화에서
    WHERE 종류 = '코미디';

이것은 다음에 있는 열을 포함하는 보기를 생성합니다.영화뷰 생성 시 테이블. 그래도*뷰를 생성하는 데 사용되었으며 나중에 테이블에 추가된 열은 뷰의 일부가 아닙니다.

다음으로 뷰 생성로컬 확인 옵션:

CREATE VIEW universal_comedies AS 보기
    선택 *
    코미디에서
    WHERE 분류 = 'U'
    로컬 확인 옵션 사용;

이것은 다음을 기반으로 보기를 생성합니다.코미디보기, 다음이 포함된 영화만 표시kind = '코미디'그리고분류 = 'U'. 어떤 시도라도삽입또는업데이트새 행에 다음 항목이 없으면 보기의 행이 거부됩니다.분류 = 'U'하지만 영화는종류확인되지 않습니다.

다음으로 뷰 생성계단식 확인 옵션:

pg_comedies AS 스포츠 토토 만들기
    선택 *
    코미디에서
    WHERE 분류 = 'PG'
    계단식 수표 옵션 사용;

이것은 두 가지를 모두 확인하는 스포츠 토토를 생성합니다.종류그리고분류새 행.

업데이트 가능한 열과 업데이트 불가능한 열이 혼합된 뷰를 생성합니다:

다음으로 코미디 스포츠 토토 만들기
    f.*를 선택하세요.
           country_code_to_name(f.country_code) AS 국가,
           (평균 선택(r.등급)
            사용자 평가 r에서
            WHERE r.film_id = f.id) AS 평균 등급
    FROM 영화 f
    f.kind = '코미디';

이 보기는 다음을 지원합니다삽입, 업데이트그리고삭제. 의 모든 열영화테이블은 업데이트할 수 있지만 계산된 열은국가그리고평균_등급읽기 전용입니다.

1부터 100까지의 숫자로 구성된 재귀적 뷰를 생성합니다:

반복 뷰 생성 public.nums_1_100 (n) AS
    가치 (1)
유니온 올
    n < 100인 경우 nums_1_100에서 n+1 선택;

재귀적 뷰의 이름은 여기에서 스키마에 따라 한정된다는 점에 유의하세요.생성, 내부 자체 참조가 스키마 한정이 아닙니다. 이는 암시적으로 생성된 CTE의 이름을 스키마로 한정할 수 없기 때문입니다.

호환성

뷰 생성 또는 교체포스트그레SQL언어 확장. 임시 보기의 개념도 마찬가지입니다.함께 ( ... )절도 확장입니다.