Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Remote » 创建 SQL Remote 系统 » 基于事务日志的复制

 

触发器复制

通常,远程数据库与统一数据库定义了相同的触发器。

缺省情况下,SQL Remote 不复制由触发器执行的操作。实际上,当在远程数据库上对在统一数据库中触发触发器的操作进行复制时,复制触发器将在远程数据库上自动触发。这将避免权限问题以及每个操作发生两次的可能性。此规则有一些例外情况:

  • RESOLVE UPDATE 触发器的复制   由冲突解决或 RESOLVE UPDATE 触发器执行的操作将从统一数据库复制 到所有远程数据库,包括发送引起冲突的消息的远程数据库。

  • BEFORE 触发器的复制   修改要更新的行的 BEFORE 触发器的操作会在执行 UPDATE 语句操作前进行复制

    例如,增加行中计数器列以跟踪行的更新次数的 BEFORE UPDATE 触发器如果被复制,则将进行双倍计数,因为复制 UPDATE 语句时将在远程数据库上触发 BEFORE UPDATE 触发器。

    将列设置为上次更新时间的 BEFORE UPDATE 触发器也将获取复制 UPDATE 语句的时间。

    若要防止此问题,必须确保预订者数据库中没有 BEFORE UPDATE 触发器,或该触发器不执行被复制的操作。

 复制触发器操作的选项
 避免触发器错误
 抽取实用程序 (dbxtract)
 另请参见