如何在同一个数据库中创建表复制?(DBMR2758)
A1:一般来说,表复制应用在不同的数据库之间,但也可以用于同一个数据库。
您可以通过以下两种方法在同一个数据库中创建表复制:
一、使用Create Replication语法。但采用这种方法时,Create Replication语法中不能包含“CLEAR DATA”和“CLEAR AND FLUSH DATA”这两个选项。
例如:
CREATE REPLICATION rp_name
WITH PRIMARY AS SYSADM.FILE1
REPLICATE TO DBSAMPLE5:UTENTE.FILE1;
CREATE REPLICATION rp_name
WITH PRIMARY AS SYSADM.FILE1
REPLICATE TO DBSAMPLE5:UTENTE.FILE1
FLUSH DATA;
注意:如果用户使用JDBA工具创建表复制,则不能勾选 “删除目标表中的数据”。
如果需要删除目标表中的原始数据,则用户需在创建表复制之前手动删除所有记录。
二、使用触发器。请注意该方法仅适用于同步表复制,且它作为一个全局事务将占用一个额外连接。
例如:
CREATE TRIGGER TR_INSERT AFTER INSERT ON SYSADM.FILE1
FOR EACH ROW
(INSERT INTO UTENTE.FILE1 VALUES(new.c1,new.c2));
CREATE TRIGGER TR_UPDATE AFTER UPDATE ONSYSADM.FILE1
FOR EACH ROW
(UPDATE UTENTE.FILE1 SET C1=NEW.C1,C2=NEW.C2);
CREATE TRIGGER TR_DELETE AFTER DELETE ON SYSADM.FILE1
FOR EACH ROW
(DELETE FROM UTENTE.FILE1 WHERE C1=OLD.C1 AND C2=OLD.C2);
版本: All
产品: Normal/Bundle
平台: Windows/Linux