使用 'cdrsession' 选项

DBINFO() 函数的 'cdrsession' 选项检测是否执行 INSERT、UPDATE 或 DELETE 语句作为复制的事务的一部分。

您可能想要升级触发器、存储过程或用户定义的例程来采取不同的活动,这依赖于是否执行事务作为 Enterprise Replication 的一部分。如果线程执行的数据库操作是 Enterprise Replication apply 或 sync 线程,则 DBINFO() 函数的 'cdrsession' 选项返回 1;否则,该函数返回 0

下列示例展示使用 'cdrsession' 选项的 SPL 函数,来确定线程是否正在执行 Enterprise Replication 操作:

CREATE FUNCTION iscdr ()
        RETURNING int;
        
        DEFINE iscdrthread int;
        SELECT DBINFO('cdrsession') into iscdrthread
        from systables where tabid = 1;
        RETURN iscdrthread;
        
        END FUNCTION