2014-10-17 139 views
2

我想在某些mysql(或mariadb)表(innodb)更新,插入或删除时发生通知。如何订阅更新,删除和插入一个MySQL表?

我需要尽快跟踪从另一个过程中,这些变化,

我想也许我可以订阅MySQL的二进制日志? 有人可以解释如何做到这一点? 是否有例如mysql提供的日志读取API?

该游戏是否变化,当我使用一个加莱拉集群?

+0

再次思考这个问题。由于我处于另一个进程中,并且此进程可能会崩溃,所以我认为订阅二进制日志是唯一可行的方法.... – jack 2014-10-17 05:46:16

回答

0

TRIGGER s为这里你的朋友。 From MySQL-Doc:

A trigger is defined to activate when a statement inserts, 
updates, or deletes rows in the associated table 

查看MySQL-Doc here,也有一些例子。

+2

这不会通知其他进程,它只能在数据库上运行其他查询。 – Barmar 2014-10-17 05:40:50

+0

这不是你需要的吗?在表中插入'last_update_time'并定期从您的应用程序中读取值。 – Benvorth 2014-10-17 05:49:39

+0

然后,我必须每秒轮询一下桌子......完成一些工作 – jack 2014-10-17 11:56:51

1

我不知道这是否会帮助你,但我喜欢用一个单独的表来跟踪变化。如果我有一个名为“site_visitors”的表格,我会创建另一个名为“site_visitors_log”的表格,在将数据插入“site_visitors”后立即写入我需要的信息(IP地址,时间戳记等)。很方便。

相关问题