ALTER VIEW — 뷰 정의 바꾸기
ALTER VIEW [ IF EXISTS ]이름
ALTER [ COLUMN ]칼럼이름
SET DEFAULTexpression
ALTER VIEW [ IF EXISTS ]이름
ALTER [ COLUMN ]칼럼이름
DROP DEFAULT ALTER VIEW [ IF EXISTS ]이름
OWNER TO {새소유주
| CURRENT_USER | SESSION_USER } ALTER VIEW [ IF EXISTS ]이름
RENAME TO새이름
ALTER VIEW [ IF EXISTS ]이름
SET SCHEMA새스키마
ALTER VIEW [ IF EXISTS ]이름
SET (뷰옵션이름
[=뷰옵션값
] [, ... ] ) ALTER VIEW [ IF EXISTS ]이름
RESET (뷰옵션이름
[, ... ] )
ALTER VIEW
명령은 뷰의 속성을 변경한다. (뷰에 정의된
쿼리를 변경하려면 CREATE OR REPLACE VIEW
명령을 사용한다.)
ALTER VIEW
명령은 해당 뷰의 소유주만 실행할 수 있다.
스키마를 변경하려면, 그 새 스키마의 접근 권한으로 CREATE
권한이 있어야한다. 소유주를 변경하려면, 직접적이든 간접적이든 현재 작업자
롤이 새 소유주 롤 소속으로 있어야하며, 새 소유주 또한
해당 뷰에 대한 CREATE
권한이 있어야한다. (이러한
제한은 소유주가 바뀌면 옛 소유주는 그 뷰를 삭제 할 수 없도록
하기 위함이다. 반면, 슈퍼유저라면 모든 뷰의 소유주 변경을 자유롭게
할 수 있다.)
이름
(스키마 이름을 포함 수도 있는) 변경 작업을 하려는 뷰의 이름
IF EXISTS
해당 뷰가 없어도 오류를 보이지 않고, 알림 메시지만 보여주고 정상 실행 된다.
SET
/DROP DEFAULT
한 칼럼의 초기값을 지정하거나, 지운다. 뷰의 칼럼 초기값은
해당 뷰에 지정한 룰이나, 트리거로 지정한 INSERT
또는 UPDATE
명령이 수행 될 때 사용된다. 따라서 이 초기값은 실제 테이블의 해당 칼럼 초기값보다
우선적으로 적용된다.
새소유주
해당 뷰에 지정한 새소유주 롤을 지정한다.
새이름
해당 뷰의 바꿀 새 이름
새스키마
해당 뷰의 바꿀 새 스키마
뷰옵션이름
새로운 옵션 값을 지정하거나 지울 뷰 옵션 이름
뷰옵션값
지정한 뷰 옵션의 값
역사적인 이유로, ALTER TABLE
명령을
뷰에서 사용할 수 있다. 하지만, ALTER TABLE
명령을 뷰에서 사용할 때는 위에서 언급한 뷰에서 사용할 수 있는
문법만 허용하고 있다.
foo
라는 뷰를
bar
로 이름을 바꾸려면:
ALTER VIEW foo RENAME TO bar;
업데이트 가능한 뷰에서 한 칼럼의 초기값을 지정하는 경우:
CREATE TABLE base_table (id int, ts timestamptz); CREATE VIEW a_view AS SELECT * FROM base_table; ALTER VIEW a_view ALTER COLUMN ts SET DEFAULT now(); INSERT INTO base_table(id) VALUES(1); -- ts will receive a NULL INSERT INTO a_view(id) VALUES(2); -- ts will receive the current time
ALTER VIEW
명령은 표준 SQL에 대한
PostgreSQL 확장형이다.