MySQL表更改的事件监听器?
Posted
技术标签:
【中文标题】MySQL表更改的事件监听器?【英文标题】:Event listener for MySQL table change? 【发布时间】:2014-01-11 22:32:50 【问题描述】:是否有 php/javascript/mysql/ajax 事件侦听器或方法可以在 MySQL 表中的数据每次更改时调用函数 - 例如添加新行或更改/删除行时。
还是我从错误的角度看它,我还在学习 AJAX。
只是寻找正确的方向,我找不到任何东西。谢谢。
编辑 基本上当用户坐在我的网站上时,如果新数据从另一个来源添加到服务器上的数据库中(不是因为该用户的操作),我希望能够调用一个函数来异步加载该新数据对于这个用户。
【问题讨论】:
不,Javascript 与数据库没有直接连接。您必须编写一些代码来执行此操作。 你描述的听起来比mysql更适合redis... 【参考方案1】:如果您尝试根据 MySQL 中的其他更改来更改 MySQL 中的日期,触发器应该可以工作:
http://dev.mysql.com/doc/refman/5.6/en/triggers.html
如果您希望在 MySQL 中的数据发生更改时进行服务器端或客户端回调,那么您将无法通过 MySQL 本身获得该功能。您可能需要在架构中添加一些内容(标志、时间戳等),以指示数据何时更改,并运行异步进程以根据数据的更改执行某些操作。
【讨论】:
您会使用 javascript setTimeout() 函数来检查标志是否已更改?例如,如果用户坐在页面上并等待加载新内容。还是有更好的选择。 @badmin 这是一个选项,尽管还有其他选项,例如 Comet/long-polling 或 web sockets。【参考方案2】:为此,您需要使用MySql Proxy
MySQL Proxy 是一个简单的程序,位于您的客户端和 MySQL 服务器之间 可以监控、分析或改变他们的沟通方式。它的灵活性允许 用途广泛,包括负载平衡;故障转移;查询分析; 查询过滤和修改;还有很多。安装和构建 说明在源存档中
或者你需要维护一个日志
【讨论】:
【参考方案3】:您可以使用以下方法处理来自 MySQL DB 的每个或选定更改的事件
https://github.com/spencerlambert/mysql-events
【讨论】:
以上是关于MySQL表更改的事件监听器?的主要内容,如果未能解决你的问题,请参考以下文章