CREATE PUBLICATION — 새 출판 정의
간행물 작성이름[ 모든 테이블에 대해 | 에 대한publication_object[, ... ] ] [ 와 (publication_parameter[=값] [, ... ] ) ] 어디에서publication_object다음 중 하나입니다:표 [만]테이블_이름[ * ] [ (열_이름[, ... ] ) ] [ WHERE (표현) ] [, ... ] 스키마의 테이블스키마_이름| CURRENT_SCHEMA [, ... ]
범퍼카 토토 작성현재 데이터베이스에 새 출판물을 추가합니다. 출판물 이름은 현재 데이터베이스에 있는 기존 출판물의 이름과 달라야 합니다.
게시란 기본적으로 데이터 변경 사항이 논리적 복제를 통해 복제되도록 의도된 테이블 그룹입니다. 참조PostgreSQL : 문서 : 16 : 31.1. 배트맨 토토게시물이 논리적 복제 설정에 어떻게 적용되는지 자세히 알아보세요.
이름 #새 출판물의 이름.
테이블용 #출판에 추가할 테이블 목록을 지정합니다. 만일만이 테이블 이름 앞에 지정되면 해당 테이블만 게시에 추가됩니다. 만약에만이 지정되지 않으면 테이블과 모든 하위 테이블(있는 경우)이 추가됩니다. 선택적으로,*테이블 이름 뒤에 지정하여 하위 테이블이 포함되어 있음을 명시적으로 나타낼 수 있습니다. 그러나 이는 분할된 테이블에는 적용되지 않습니다. 분할된 테이블의 파티션은 항상 암시적으로 게시의 일부로 간주되므로 명시적으로 게시에 추가되지 않습니다.
선택사항인 경우어디절이 지정되면 다음을 정의합니다.행 필터표현. 다음이 해당하는 행표현false로 평가되거나 null이 게시되지 않습니다. 표현식 주위에는 괄호가 필요합니다. 아무런 영향을 미치지 않습니다.잘라내기명령.
열 목록이 지정되면 명명된 열만 복제됩니다. 열 목록이 지정되지 않은 경우 나중에 추가된 열을 포함하여 테이블의 모든 열이 이 게시를 통해 복제됩니다. 아무런 영향을 미치지 않습니다.잘라내기명령. 참조PostgreSQL : 문서 : 16 : 31.4. 열 토토 사이트 순위열 목록에 대한 자세한 내용을 확인하세요.
영구 기본 테이블과 분할된 테이블만 게시의 일부가 될 수 있습니다. 임시 테이블, 기록되지 않은 테이블, 외부 테이블, 구체화된 뷰 및 일반 뷰는 게시의 일부가 될 수 없습니다.
게시물도 게시할 때 열 목록 지정스키마 테이블의 경우지원되지 않습니다.
분할된 테이블이 게시에 추가되면 모든 기존 및 향후 파티션이 암시적으로 게시의 일부로 간주됩니다. 따라서 파티션에서 직접 수행되는 작업도 해당 조상이 속한 게시를 통해 게시됩니다.
모든 테이블에 대해 #미래에 생성되는 테이블을 포함하여 데이터베이스의 모든 테이블에 대한 변경 사항을 복제하는 게시로 표시합니다.
스키마 테이블의 경우 #미래에 생성되는 테이블을 포함하여 지정된 스키마 목록의 모든 테이블에 대한 변경 사항을 복제하는 게시로 표시합니다.
게시물이 열 목록이 있는 테이블도 게시할 때 스키마를 지정하는 것은 지원되지 않습니다.
스키마에 있는 영구 기본 테이블과 분할된 테이블만 게시의 일부로 포함됩니다. 임시 테이블, 기록되지 않은 테이블, 외부 테이블, 구체화된 뷰, 스키마의 일반 뷰는 게시에 포함되지 않습니다.
분할된 테이블이 스키마 수준 게시를 통해 게시되면 모든 기존 및 향후 파티션은 게시 스키마에 속하는지 여부에 관계없이 암시적으로 게시의 일부로 간주됩니다. 따라서 파티션에서 직접 수행되는 작업도 해당 조상이 속한 게시를 통해 게시됩니다.
함께 (publication_parameter [= 값] [, ... ] ) #이 절은 출판에 대한 선택적 매개변수를 지정합니다. 다음 매개변수가 지원됩니다.
게시 (문자열) #이 매개변수는 새 게시에 의해 구독자에게 게시될 DML 작업을 결정합니다. 값은 쉼표로 구분된 작업 목록입니다. 허용되는 작업은 다음과 같습니다.삽입, 업데이트, 삭제및잘림. 기본값은 모든 작업을 게시하는 것이므로 이 옵션의 기본값은'삽입, 업데이트, 삭제, 자르기'.
이 매개변수는 DML 작업에만 영향을 미칩니다. 특히 초기 데이터 동기화(참조섹션 31.7.1) 논리적 복제의 경우 기존 테이블 데이터를 복사할 때 이 매개변수를 고려하지 않습니다.
publish_via_partition_root (부울) #이 매개변수는 게시에 포함된 분할된 테이블(또는 해당 파티션)의 변경 사항이 실제로 변경된 개별 파티션이 아닌 분할된 테이블의 ID 및 스키마를 사용하여 게시되는지 여부를 결정합니다. 후자가 기본값입니다. 이 기능을 활성화하면 파티션을 나누지 않은 테이블이나 다른 파티션 집합으로 구성된 파티션을 나눈 테이블에 변경 사항을 복제할 수 있습니다.
구독이 여러 출판물을 결합하는 경우가 있을 수 있습니다. 다음을 설정한 구독 게시에 의해 분할된 테이블이 게시되는 경우publish_via_partition_root = true, 이 분할된 테이블(또는 해당 파티션)의 변경 사항은 개별 파티션이 아닌 이 분할된 테이블의 ID와 스키마를 사용하여 게시됩니다.
이 매개변수는 파티션에 대해 행 필터와 열 목록이 선택되는 방식에도 영향을 미칩니다. 자세한 내용은 아래를 참조하세요.
이것이 활성화되면,잘라내기파티션에서 직접 수행된 작업은 복제되지 않습니다.
유형의 매개변수를 지정할 때부울, 그= 값부분은 생략 가능하며 이는 지정하는 것과 같습니다.참.
만약테이블용, 모든 테이블에 대해또는스키마 테이블의 경우이 지정되지 않은 경우 게시는 빈 테이블 세트로 시작됩니다. 이는 나중에 테이블이나 스키마를 추가할 때 유용합니다.
게시 생성 시 복제가 시작되지 않습니다. 향후 구독자를 위한 그룹화 및 필터링 논리만 정의합니다.
간행물을 생성하려면 호출하는 사용자는 다음을 가지고 있어야 합니다.만들기현재 데이터베이스에 대한 권한입니다. (물론 슈퍼유저는 이 검사를 우회합니다.)
출판에 테이블을 추가하려면 호출하는 사용자가 테이블에 대한 소유권을 가지고 있어야 합니다.모든 테이블에 대해그리고스키마 테이블의 경우절에서는 호출하는 사용자가 수퍼유저여야 합니다.
게시된 출판물에 추가된 테이블업데이트및/또는삭제작업에는 다음이 있어야 합니다.복제본 ID정의되었습니다. 그렇지 않으면 해당 테이블에서 해당 작업이 허용되지 않습니다.
모든 열 목록에는 다음이 포함되어야 합니다.복제본 ID열 순서업데이트또는삭제작업이 게시됩니다. 출판물이 출판만 되는 경우에는 열 목록 제한이 없습니다.삽입작업.
행 필터 표현식(예:어디절)은 다음에서 다루는 열만 포함해야 합니다.복제본 ID, 다음을 위해업데이트그리고삭제작업이 게시됩니다. 출판을 위해삽입작업, 어떤 열이든 사용할 수 있습니다.어디식. 행 필터를 사용하면 사용자 정의 함수, 사용자 정의 연산자, 사용자 정의 유형, 사용자 정의 데이터 정렬, 불변 내장 함수 또는 시스템 열에 대한 참조가 없는 간단한 표현식을 사용할 수 있습니다.
다음의 경우 테이블의 행 필터가 중복됩니다.스키마 테이블의 경우이 지정되었으며 테이블은 참조된 스키마에 속합니다.
게시된 파티션 테이블의 경우 게시 매개변수가 다음과 같은 경우 각 파티션의 행 필터는 게시된 파티션 테이블에서 가져옵니다.publish_via_partition_root은 true이고 false인 경우 파티션 자체에서 발생합니다(기본값). 참조PostgreSQL : 문서 : 16 : 31.3. 행 토토 사이트 추천행 필터에 대한 자세한 내용을 확인하세요. 마찬가지로, 게시된 분할 테이블의 경우 게시 매개변수가 다음과 같은 경우 각 파티션의 열 목록은 게시된 분할 테이블에서 가져옵니다.publish_via_partition_root은 true이고 false인 경우 파티션 자체에서 발생합니다.
에 대한충돌 시 삽입...명령을 실행하면 게시는 명령의 결과인 작업을 게시합니다. 결과에 따라 다음 중 하나로 게시될 수 있습니다.삽입또는업데이트또는 전혀 게시되지 않을 수도 있습니다.
a병합명령을 실행하면 출판물이 게시됩니다.삽입, 업데이트, 또는삭제삽입, 업데이트 또는 삭제된 각 행에 대해.
첨부다음을 사용하여 루트가 게시된 파티션 트리로 테이블을 생성publish_via_partition_root다음으로 설정됨사실테이블의 기존 내용이 복제되지 않습니다.
복사 ...에서명령은 다음과 같이 게시됩니다.삽입작업.
DDL작업이 게시되지 않았습니다.
그어디절 표현식은 복제 연결에 사용된 역할로 실행됩니다.
두 테이블의 모든 변경 사항을 게시하는 게시를 생성합니다:
테이블 사용자, 부서를 위한 범퍼카 토토 mypublication 생성;
활성 부서의 모든 변경 사항을 게시하는 출판물 생성:
WHERE(활성 IS TRUE) 테이블 부서에 대한 출판물 active_departments 생성;
모든 테이블의 모든 변경 사항을 게시하는 게시 생성:
모든 테이블에 대한 출판물 생성 생성;
게시만 하는 출판물 생성삽입한 테이블의 작업:
테이블 mydata에 대한 삽입_전용 출판물 생성
WITH (게시 = '삽입');
테이블의 모든 변경 사항을 게시하는 게시 생성사용자, 부서그리고 스키마에 있는 모든 테이블에 대한 모든 변경 사항생산:
스키마 프로덕션의 테이블 사용자, 부서, 테이블을 위한 출판물 생성 Production_publication;
스키마에 있는 모든 테이블에 대한 모든 변경 사항을 게시하는 게시 생성마케팅그리고판매:
스키마 마케팅, 판매의 테이블에 대한 출판물 sales_publication 생성;
테이블의 모든 변경 사항을 게시하는 게시 생성사용자, 그러나 열만 복제사용자_ID그리고이름:
테이블 사용자(user_id, 이름)에 대해 users_filtered 게시 생성;
간행물 작성은PostgreSQL확장.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.