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

SQL Anywhere 11.0.1 (中文) » SQL Remote » SQL Remote 复制设计 » SQL Remote 复制设计和设置 » 更新冲突

 

使用触发器的自定义冲突解决方法

自定义冲突解决方法可以采取多种形式。例如,在某些应用程序中,可通过以下方法解决冲突:

自定义冲突解决方法需要您编写 RESOLVE UPDATE 触发器。

使用 RESOLVE UPDATE 冲突解决触发器

RESOLVE UPDATE 触发器在每行更新之前触发。RESOLVE UPDATE 触发器的语法如下所示:

CREATE TRIGGER trigger-name
RESOLVE UPDATE
OF column-name ON table-name 
[ REFERENCING [ OLD AS old-val ]
   [ NEW AS new-val ]
     [ REMOTE AS remote-val ] ] 
FOR EACH ROW 
BEGIN
   ... 
END

REFERENCING 子句允许访问表中要更新的行中的值 (OLD)、行将更新成的值 (NEW) 和根据 VERIFY 子句 (REMOTE) 应该存在的行。REMOTE AS 子句中只能引用存在于 VERIFY 子句中的列;其它列将返回一个 [未找到列] 错误。

使用 CURRENT REMOTE USER 特殊常量

当 CURRENT REMOTE USER 执行未提供文档的 REMOTE USER 语句时,它由 DBREMOTE 来设置。该值为 NULL,但从 DBREMOTE 进行的连接除外。

可在将冲突报告存放到某个表中的 RESOLVE UPDATE 触发器中使用 CURRENT REMOTE USER,以标识产生冲突的用户。

另请参见

解决日期冲突
解决库存冲突