Node.js 如何知道使用nodejs和mysql在mysql上的更新事件?

Node.js 如何知道使用nodejs和mysql在mysql上的更新事件?,node.js,sequelize.js,real-time-updates,Node.js,Sequelize.js,Real Time Updates,我是Nodejs的新手,我想在MySQL上发生更新时向客户端发送数据。所以我找到了ORM,Sequelize 我可以使用Sequelize从MySQL知道更新事件吗?或者我如何知道使用Nodejs和MySQL在MySQL上的更新事件?对于MySQL,最简单的解决方案是设置一些东西来“跟踪”MySQL binlog,例如 另一个不太理想/简单的解决方案是在数据库中设置触发器,调用自定义数据库插件,以某种方式与进程通信。对于MySql,触发器是最佳选择 MySQL触发器:触发器或数据库触发器是自动执

我是Nodejs的新手,我想在MySQL上发生更新时向客户端发送数据。所以我找到了ORM,Sequelize


我可以使用Sequelize从MySQL知道更新事件吗?或者我如何知道使用Nodejs和MySQL在MySQL上的更新事件?

对于MySQL,最简单的解决方案是设置一些东西来“跟踪”MySQL binlog,例如


另一个不太理想/简单的解决方案是在数据库中设置触发器,调用自定义数据库插件,以某种方式与进程通信。

对于MySql,触发器是最佳选择

MySQL触发器:触发器或数据库触发器是自动执行的存储程序,用于响应表中发生的特定事件,例如插入、更新或删除

例如:-您可以使用审核表来保存有关数据库更新或插入的信息

员工表的审核表示例。

创建表EMPLOYEE\u audit(
id INT自动递增主键,
employeeNumber INT不为空,
lastname VARCHAR(50)不为空,
changedat日期时间默认为空,
action VARCHAR(50)默认为空
);

在employees表上定义触发器

分隔符$$
在员工更新之前创建触发器
员工更新前
每行
开始
插入到员工审计中
设置操作='更新',
employeeNumber=OLD.employeeNumber,
lastname=OLD.lastname,
changedat=NOW();
结束$$
定界符;

然后,要查看当前数据库中的所有触发器,请使用showtriggers语句,如下所示:

显示触发器;

在后端,您可以使用轮询机制(基于间隔的db检查)来更新审计表,并相应地通知客户端。 这可以通过一个简单的查询来完成,该查询检查员工\u audit通过检查行名称或根据创建的日期时间进行更新

如果您不需要这个额外的表,您可以使用相同的轮询逻辑来检查employees表本身是否根据update_atdate time字段进行更新。

您可以使用
一个Node JS NPM包,用于监视MySQL数据库并对匹配的事件运行回调。

数据将在何时更新?AFAIK这在SQL中是不可能的。您需要使用其他一些事件传播机制,例如JMS队列。或者只是轮询您的数据库以获取更新。@CodeBean更新发生在其他系统上。@BastianVoigt Mysql事件如何?