SQLREMOTE:连接对象的隐式同步
-
11-12-2019 - |
题
我正在寻找与SQLREMOTE同步外界关系的最佳方式。所以有e.g.这两个表
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应通过同步触发该数据集的客户端。但现在我想知道,同步的最佳方法是表格_1的相应数据是什么。
第一个方法是从我的思想中放入表格_1中的CL1和CL2字段,并将它们添加到Pubclization,因此出版物看起来很少:
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