ALTER PUBLICATION

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 확장 기능이다.

관련 항목

CREATE PUBLICATION, DROP PUBLICATION, CREATE SUBSCRIPTION, ALTER SUBSCRIPTION