Mysql 使用触发器在复制后检索原始时间戳

Mysql 使用触发器在复制后检索原始时间戳,mysql,sql,triggers,timestamp,replication,Mysql,Sql,Triggers,Timestamp,Replication,场景是这样的:我们有两个数据库db1和db2。db1中的语句复制到db2 查询1在db1中执行 这将复制到db2 在db2中执行复制查询1时,需要在db2中运行触发器。此触发器需要更新db2中的一个表,时间戳为在db1中运行查询1的时间。 这是可能的吗?当使用基于语句的复制时(我假设您是,因为您只有从机上有一个触发器),时间会保存在binlog中,并用于查询中的NOW()和CURRENT\u TIMESTAMP,但我不确定是否有触发器。您可以通过停止从机几分钟并检查时间来轻松尝试。@Vate

场景是这样的:我们有两个数据库db1和db2。db1中的语句复制到db2

  • 查询1在db1中执行
  • 这将复制到db2
在db2中执行复制查询1时,需要在db2中运行触发器。此触发器需要更新db2中的一个表,时间戳为在db1中运行查询1的时间。


这是可能的吗?

当使用基于语句的复制时(我假设您是,因为您只有从机上有一个触发器),时间会保存在binlog中,并用于查询中的
NOW()
CURRENT\u TIMESTAMP
,但我不确定是否有触发器。您可以通过停止从机几分钟并检查时间来轻松尝试。@Vatev:From“Replication:,时间戳列生成的值现在在存储函数或触发器的持续时间内保持不变。这可以防止基于语句的复制中断。(Bug#12481)@我希望这对OP来说是有意义的:)谢谢瓦特夫和艾格亚尔。将在几天内尝试并确认…是的,测试了这个,它工作正常。即使复制延迟,也会传播相同的时间戳。当使用基于语句的复制时(我假设您是,因为您只有从机上的触发器),时间会保存在binlog中,并用于查询中的
NOW()
CURRENT\u timestamp
,但我不确定是否有触发器。您可以通过停止从机几分钟并检查时间来轻松尝试。@Vatev:From“Replication:,时间戳列生成的值现在在存储函数或触发器的持续时间内保持不变。这可以防止基于语句的复制中断。(Bug#12481)@我希望这对OP来说是有意义的:)谢谢瓦特夫和艾格亚尔。将在几天内尝试并确认…是的,测试了这个,它工作正常。即使复制延迟,也会传播相同的时间戳。