好的,这是我的方案
服务器在服务器上为每个站点运行主数据库和其他数据库。 更新将写入主数据库,并且触发器会将此记录插入到特定站点的相关数据库中,该站点旨在复制到站点数据库级别。
触发器工作正常,但插入的记录不会进入从属DB。我使用基于语句的复制,因为基于行不是一个选项。我也试过调用一个存储过程并将其作为一个事件,但没有任何结果。
有没有办法解决这个问题 - 就像我使用MySQL 5.1的方式
由于
下面的触发器语法
dbmaster = server master db dbsite =服务器站点DB(这是复制主机)
delimiter #
create trigger rstreplicate after insert on dbmaster.exchange
for each row begin insert into dbsite.exchange
select distinct new.TYPE, new.FILENAME, new.STATUS, new.USER_ID, new.INP_DATE, new.CHG_DATE from dbmaster.exchange where new.IP='127.0.0.1';
end#
delimiter ;
答案 0 :(得分:0)
B.5.12:触发器是否适用于复制?
是。但是,它们的工作方式取决于您是否使用 MySQL的“经典”基于语句的复制功能齐全 MySQL的版本,或者引入的基于行的复制格式 MySQL 5.1。
使用基于语句的复制时,从属设备上的触发器是 由在主服务器上执行的语句执行(并复制 对奴隶)。
使用基于行的复制时,不会在。上执行触发器 奴隶是由于在主服务器上运行的语句然后 复制到奴隶。相反,当使用基于行的复制时, 应用在主服务器上执行触发器所引起的更改 在奴隶上。
因此,您需要触发触发器复制到从属服务器的语句,并且您需要在服务器上创建重复的触发器,这些触发器将响应语句应用相同的更新。