ALTER PUBLICATION — 발행 정의 바꾸기
ALTER PUBLICATION이름
ADD TABLE [ ONLY ]테이블이름
[ * ] [, ...] ALTER PUBLICATION이름
SET TABLE [ ONLY ]테이블이름
[ * ] [, ...] ALTER PUBLICATION이름
DROP TABLE [ ONLY ]테이블이름
[ * ] [, ...] ALTER PUBLICATION이름
SET (발행_매개변수
[=값
] [, ... ] ) ALTER PUBLICATION이름
OWNER TO {새소유주
| CURRENT_USER | SESSION_USER } ALTER PUBLICATION이름
RENAME TO새이름
ALTER PUBLICATION
명령은 논리 복제에서 사용하는
발행의 정의를 바꾼다.
처음 세가지 구문은 해당 발행에 포함되는 테이블 목록을 조작할 때
사용한다. SET TABLE
구문은 그 목록을 지정한
테이블들로 지정하는 것이고, ADD TABLE
,
DROP TABLE
구문은 기존 목록에서 지정한
테이블들을 보태거나, 뺄 때 사용한다.
이렇게 대상 테이블의 목록이 변경 된 경우에는 구독 쪽에서
ALTER SUBSCRIPTION ... REFRESH PUBLICATION
명령을 실행해서 구독 정보를 갱신해야 함을 잊지 말아야 한다.
네번째 구문은 발행 속성을 바꾸는 명령이다. 발행 관련 속성은 CREATE PUBLICATION 설명서에서 자세히 다룬다. 이 명령에서 지정하지 않은 속성들은 기존 설정을 유지한다.
나머지 구문은 소유주를 바꾸거나, 발행 이름을 바꾸는 명령이다.
ALTER PUBLICATION
명령은 해당 발행의 소유주만
실행할 수 있다. 소유주를 바꾸는 경우에는
기존 소유주는 새 소유주 소속이어야 하며, 새 소유주는
해당 데이터베이스에 대해 CREATE
권한이 있어야 한다.
또한 새 소유주가 FOR ALL TABLES
구문을
사용해서 새로운 발행을 만든다면, 그 소유주는 슈퍼유저여야 한다.
반면, 슈퍼유저는 이런 제한 사항들을 무시하고, 소유주를 바꿀 수 있다.
이름
작업할 논리 복제용 발행 이름.
테이블이름
테이블 이름. 이 이름 앞에 ONLY
예약어를 사용하면,
해당 테이블만 적용하고, 없으면, 그 테이블과 그 하위 테이블 모두에
대해서 적용한다. 선택적으로 *
문자를 사용해서
하위 테이블을 포함한다고 명시적으로 표시할 수도 있다.
SET ( 발행_매개변수
[= 값
] [, ... ] )
CREATE PUBLICATION 명령에서 지정했던 발행 매개 변수 설정을 바꾼다. 이 변수들의 설명은 해당 명령어 설명서에서 다룬다.
새소유주
해당 발행의 새 소유주 이름.
새이름
해당 발행의 새 이름.
해당 발행은 update, delete 인 경우만 발행 하도록 바꾼다:
ALTER PUBLICATION noinsert SET (publish = 'update, delete');
테이블 추가:
ALTER PUBLICATION mypublication ADD TABLE users, departments;
ALTER PUBLICATION
명령은 PostgreSQL
확장 기능이다.