我编写了一个触发器来在复制表上记录更新。触发器将插入一个单独的表中。我们使用默认情况下基于语句的MIXED复制。触发器旋转并在服务器之间级联。这是预期的结果,但不是期望的。
我不想取消此表上的复制。 以下链接指示使用uuid()或CURRENT_USER(以及其他)将导致服务器动态使用基于行的复制,我认为这将导致阻止级联触发器。 https://dev.mysql.com/doc/refman/8.0/en/binary-log-mixed.html
create trigger triggerAuditClientTable
after update on client FOR EACH ROW
BEGIN
insert into triggerTableAuditLog
(tableName, newValues, oldValues, hostname)
values
('client',
concat('clientId: ', new.clientId, '; lic: ', new.lic, '; peruser: ', new.peruser ),
concat('clientId: ', new.clientId, '; lic: ', old.lic, '; peruser: ', old.peruser ),
@@hostname);
END//
STOP SLAVE SQL_THREAD;
CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE = ('triggerTableAuditLog');
START SLAVE SQL_THREAD;
我可以在此表上设置一些内容来防止这种级联复制吗?