nodejs如何去监听数据库里面有新的数据插入?
发布于 6 年前 作者 hcyhehe 4611 次浏览 来自 问答

如题,nodejs如何去监听mysql数据库的指定的某一张表里面有新的数据插入?

8 回复

首先,数据库的数据插入从另一个程序中是无法监听的。 如果用笨方法的话就是循环查询,如果本次查询结果与前一次不一样,那就是有变化。 还有可以打开mysql的bin log 日志记录,然后让nodejs去监控bin log日志文件的变化,这样也能发现数据插入。 其它的可行方案暂时没想到,欢迎指点

特定的数据库有办法,比如Oracle可以利用 DCN 机制(Data Change Notification),不过这个跟 Nodejs 没啥关系。。

@Gitforxuyang 貌似只能这样了,谢谢~

@myy 我用的是mysql~

@hcyhehe 想到其它好办法记得@我啊。 我也学习学习

这个是数据库的功能问题,实现也看数据库提供了什么样的能力。 MySQL 上,我目前能想到的方案是:

  1. 在指定表上,建一个 trigger 。
  2. trigger 中调用 stored procedure 。
  3. stored procedure 中就可以用 UDF 了, UDF 可以外部访问,完成“通知”功能: https://dev.mysql.com/doc/refman/5.7/en/adding-udf.html

当然,不是 MySQL 功能这么弱的关系数据库这个功能多半都有现成方案,不用这么折腾了。

如果你是调用统一的接口修改数据库的话,那可以加一层封装,在调用修改数据库的接口之后,通知外部数据库有了修改

在插入的方法加emit不就好了

来自酷炫的 CNodeMD

回到顶部