我怎样才能知道使用mysql的nodejs mysql的更新事件?

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

我可以使用Sequelize从MySQL获知更新事件吗? 或者我怎样才能知道在MySQL上使用Nodejs与MySQL的更新事件?

在MySql的情况下,触发器是最好的select。

MySQL触发器:触发器或数据库触发器是一个自动执行以响应特定事件的stored procedures,例如,在表中插入,更新或删除。

例如: – 您可以有一个审计表来保存有关DATABASE更新或插入的信息。

审计员工表的样本。 CREATE TABLE employees_audit ( id INT AUTO_INCREMENT PRIMARY KEY, employeeNumber INT NOT NULL, lastname VARCHAR(50) NOT NULL, changedat DATETIME DEFAULT NULL, action VARCHAR(50) DEFAULT NULL );

在雇员表上定义一个触发器 DELIMITER $$ CREATE TRIGGER before_employee_update BEFORE UPDATE ON employees FOR EACH ROW BEGIN INSERT INTO employees_audit SET action = 'update', employeeNumber = OLD.employeeNumber, lastname = OLD.lastname, changedat = NOW(); END$$ DELIMITER ; DELIMITER $$ CREATE TRIGGER before_employee_update BEFORE UPDATE ON employees FOR EACH ROW BEGIN INSERT INTO employees_audit SET action = 'update', employeeNumber = OLD.employeeNumber, lastname = OLD.lastname, changedat = NOW(); END$$ DELIMITER ;

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

在你的后端,你可以有一个轮询机制(基于间隔的数据库检查)审计表更新,并相应地通知客户端。 这可以通过简单的查询来完成,通过检查行cound或基于创build的date时间来检查employees_audit更新。

如果你不需要这个额外的表,你可以有相同的轮询逻辑,根据update_atdate时间字段检查雇员表本身的更新。

对于MySQL来说,最简单的解决scheme是设置一些东西来“尾巴”MySQL的zongji ,比如zongji

另一个不那么理想/不重要的解决scheme就是在数据库中设置触发器,以便以某种方式调用与自定义数据库插件进行通信的自定义数据库插件。