SQLRemote : 연결된 개체의 암시 적 동기화
-
11-12-2019 - |
문제
SQLRemote와 외래 주요 관계를 동기화하는 가장 좋은 방법을 찾고 있습니다.그래서 예를 들면서.이 두 테이블
CREATE TABLE table1(
id integer not null default autoincrement,
name varchar(40) NOT NULL,
primary key (id)
);
CREATE TABLE table_items(
id integer NOT NULL default autoincrement,
name CHAR(40) NOT NULL,
table_1_id integer NOT NULL,
cl1 bit default 0,
cl2 bit default 0,
FOREIGN KEY ( table_1_id )
REFERENCES table_1( id ),
PRIMARY KEY (id));
.
인보이스 항목이있는 송장을 구현할 수 있습니다.CL1 및 CL2는이 데이터 세트를 동기화하여 어떤 클라이언트를 트리거해야합니다.하지만 이제는 궁금해합니다. Table_1의 해당 데이터를 동기화하는 가장 좋은 방법은 무엇입니까?
첫 번째 접근 방식은 내 마음에서 CL1과 CL2 필드를 table_1에 넣고 pubcliation에 추가하여 게시가 조금만 추가처럼 보입니다.
CREATE PUBLICATION sync_cl1 (
TABLE table_1,
TABLE table_items
WHERE cl1 = 1
);
CREATE PUBLICATION sync_cl2 (
TABLE table_1,
TABLE table_items
WHERE cl1 = 2
);
.
통합 무결성 검사를 통해 어쩌면이 작업을 수행하는 방법이 있습니까?
해결책
이 작업이 게시 내부의 하위 쿼리를 사용하여 수행 할 수 있습니다.
문서에서 :
CREATE PUBLICATION SalesRepData (
TABLE SalesReps
TABLE Customers
SUBSCRIBE BY rep_key
TABLE Contacts
SUBSCRIBE BY (SELECT rep_key
FROM Customers
WHERE Contacts.cust_key = Customers.cust_key )
);
.
이것은 영업 담당자의 고객을 위해 모든 고객 연락처를 잡을 것입니다.
조용한 중요한 것은 연결이 업데이트되면이 업데이트가 필요합니다. - 예를 들어,영업 담당자는 새로운 고객을 얻고 있습니다.이는 업데이트 / 삽입 / 삭제를위한 트리거를 사용하여 수행해야합니다.
제휴하지 않습니다 dba.stackexchange