ALTER MATERIALIZED VIEW
ALTER MATERIALIZED VIEW
ALTER MATERIALIZED VIEW는 이미 존재하는 구체화된 뷰(materialized view)의 여러 보조 속성을 바꾸는 명령이에요. 이름 변경, 소유자 변경, 스키마 이동, 인덱스 클러스터링, 저장 옵션 설정 같은 작업을 한 번에 처리할 수 있어요.
출처: PostgreSQL 문서
본문
문법 (Synopsis)
ALTER MATERIALIZED VIEW [ IF EXISTS ] name
action [, ... ]
ALTER MATERIALIZED VIEW name
[ NO ] DEPENDS ON EXTENSION extension_name
ALTER MATERIALIZED VIEW [ IF EXISTS ] name
RENAME [ COLUMN ] column_name TO new_column_name
ALTER MATERIALIZED VIEW [ IF EXISTS ] name
RENAME TO new_name
ALTER MATERIALIZED VIEW [ IF EXISTS ] name
SET SCHEMA new_schema
ALTER MATERIALIZED VIEW ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]
SET TABLESPACE new_tablespace [ NOWAIT ]
where action is one of:
ALTER [ COLUMN ] column_name SET STATISTICS integer
ALTER [ COLUMN ] column_name SET ( attribute_option = value [, ... ] )
ALTER [ COLUMN ] column_name RESET ( attribute_option [, ... ] )
ALTER [ COLUMN ] column_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT }
ALTER [ COLUMN ] column_name SET COMPRESSION compression_method
CLUSTER ON index_name
SET WITHOUT CLUSTER
SET ACCESS METHOD new_access_method
SET TABLESPACE new_tablespace
SET ( storage_parameter [= value] [, ... ] )
RESET ( storage_parameter [, ... ] )
OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
설명 (Description)
ALTER MATERIALIZED VIEW는 기존 구체화된 뷰의 여러 보조 속성을 변경해요.
이 명령을 쓰려면 해당 구체화된 뷰의 소유자여야 해요. 구체화된 뷰의 스키마를 바꾸려면 새 스키마에 대한 CREATE 권한도 있어야 해요. 소유자를 바꾸려면 새 소유 역할로 SET ROLE 할 수 있어야 하고, 그 역할이 구체화된 뷰의 스키마에 대한 CREATE 권한도 가져야 해요. (이런 제약은 소유자 변경을 통해 뷰를 드롭하고 재생성하는 것 이상의 일을 못 하게 하려는 거예요. 다만 슈퍼유저는 어떤 뷰의 소유권이든 바꿀 수 있어요.)
ALTER MATERIALIZED VIEW에서 쓸 수 있는 문법 하위 형태와 동작은 ALTER TABLE에서 제공하는 것들의 부분집합이며, 구체화된 뷰에 적용할 때도 같은 의미를 가져요. 자세한 내용은 ALTER TABLE 설명을 참고하세요.
파라미터 (Parameters)
name — 기존 구체화된 뷰의 이름이에요 (스키마 한정을 써도 돼요).
column_name — 기존 컬럼의 이름이에요.
extension_name — 구체화된 뷰가 의존하게 될 확장(extension)의 이름이에요 (NO를 지정하면 더 이상 의존하지 않게 돼요). 확장에 의존하는 것으로 표시된 구체화된 뷰는 그 확장이 드롭될 때 자동으로 함께 드롭돼요.
new_column_name — 기존 컬럼의 새 이름이에요.
new_owner — 구체화된 뷰의 새 소유자 사용자 이름이에요.
new_name — 구체화된 뷰의 새 이름이에요.
new_schema — 구체화된 뷰의 새 스키마예요.
예제 (Examples)
구체화된 뷰 foo를 bar로 이름을 바꾸려면:
ALTER MATERIALIZED VIEW foo RENAME TO bar;
호환성 (Compatibility)
ALTER MATERIALIZED VIEW는 PostgreSQL 확장 기능이에요.
더 알아보기 (Learn more)
- 구체화된 뷰의 소유권을 바꾸려면 새 소유자 역할로
SET ROLE할 수 있어야 하고, 그 역할이 스키마에CREATE권한을 가져야 해요. - 확장에 의존하는 것으로 표시한 구체화된 뷰는 확장이 드롭될 때 자동으로 함께 제거돼요.
ALTER MATERIALIZED VIEW로 쓸 수 있는 동작은ALTER TABLE의 부분집합이고 같은 의미를 가져요.