CREATE MATERIALIZED VIEW
CREATE MATERIALIZED VIEW 명령을 사용하여 기본 테이블 컬럼의 서브세트에 대한 정렬된, 프로젝트된, 구체화된 뷰를 작성하거나 대체할 수 있습니다. 이러한 뷰 유형은 각각 기본 테이블 컬럼의 서브세트를 프로젝트하며, 기본 테이블 컬럼의 특정 세트에서 정렬됩니다. 시스템은 지속적으로 뷰를 저장합니다. 이는 \dm 명령을 실행하여 표시될 수 있습니다.
구문
구체화된 뷰를 작성하는 구문은 다음과 같습니다.
CREATE [OR REPLACE] MATERIALIZED VIEW <viewname> AS SELECT <col>[,<col>…]
FROM <table> [ORDER BY <order_col>[,<order_col>…]];입력
CREATE MATERIALIZED VIEW 명령의 입력은 다음과 같습니다.
| 입력 | 설명 |
|---|---|
| OR REPLACE | 기존 구체화된 뷰를 대체합니다. 이 옵션을 사용하면 데이터베이스 이름이 변경된 이후 또는 일부 방식으로 기본 테이블이 변경된 이후에 뷰를 재빌드할 수 있습니다. |
| <보기 이름 | 작성할 구체화된 뷰의 이름입니다. |
| <col> | 이 뷰를 구성하는 컬럼입니다. 최대 64개까지 컬럼을 지정할 수 있습니다. |
| <table> | 뷰가 작성되는 테이블입니다. |
| <order_col> | 정렬할 컬럼입니다. |
제한사항
CREATE MATERIALIZED VIEW 명령에는 다음 제한사항이 있습니다.
- FROM절에는 단일 기본 테이블만 지정할 수 있습니다.
- 구체화된 뷰를 작성할 때는 WHERE절을 사용할 수 없습니다.
- 선택 목록에 지정하는 컬럼은 기본 테이블에 존재해야 합니다.
- 선택 목록에는 최소한 하나의 컬럼을 지정해야 합니다.
- 구체화된 뷰에 대해 최대 64개까지 컬럼을 선택할 수 있습니다.
- ORDER BY 목록의 컬럼은 선택 목록에 지정되어 있어야 합니다.
- 외부, 임시, 시스템 또는 클러스터된 기본 테이블(CBT)을 뷰의 기본 테이블로 지정할 수 없습니다.
출력
CREATE MATERIALIZED VIEW 명령의 출력은 다음과 같습니다.
| 출력 | 설명 |
|---|---|
| CREATE MATERIALIZED VIEW | 명령에 성공했습니다. |
| ERROR: Relation 'view' already exists. | 지정된 이름의 뷰가 이미 데이터베이스에 존재합니다. |
권한
관리 사용자, 구체화된 뷰가 정의된 데이터베이스 또는 스키마의 소유자이거나, 계정에 구체화된 뷰 작성 특권이 있어야 합니다. OR REPLACE 옵션을 지정하는 경우에는 구체화된 뷰 또는 구체화된 뷰 오브젝트 클래스에 대한 변경 특권도 있어야 합니다.
사용량
샘플 사용법은 다음과 같습니다.
- 구체화된 뷰를 작성합니다.
MYDB.SCH1(USER)=> CREATE MATERIALIZED VIEW kinds AS SELECT t1 FROM emp ORDER BY name;