CNode

nodejs如何去监听数据库里面有新的数据插入?

问答
Hhcyhehe发布于8 年前最后回复8 年前8 回复5898 浏览0 收藏

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

查看回复

回复 (8)

G
Gitforxuyang#3·8 年前

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

M
myy#4·8 年前

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

W
William17#5·8 年前

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

Z
zy445566#6·8 年前

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

来自酷炫的 CNodeMD

G
Gitforxuyang#7·8 年前
引用 hcyhehe@Gitforxuyang 貌似只能这样了,谢谢

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

Y
yszou#8·8 年前

这个是数据库的功能问题,实现也看数据库提供了什么样的能力。 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 功能这么弱的关系数据库这个功能多半都有现成方案,不用这么折腾了。

参与回复
登录后即可参与回复。登录