nodejs如何去监听数据库里面有新的数据插入?
如题,nodejs如何去监听mysql数据库的指定的某一张表里面有新的数据插入?
8 回复
首先,数据库的数据插入从另一个程序中是无法监听的。 如果用笨方法的话就是循环查询,如果本次查询结果与前一次不一样,那就是有变化。 还有可以打开mysql的bin log 日志记录,然后让nodejs去监控bin log日志文件的变化,这样也能发现数据插入。 其它的可行方案暂时没想到,欢迎指点
这个是数据库的功能问题,实现也看数据库提供了什么样的能力。 MySQL 上,我目前能想到的方案是:
- 在指定表上,建一个 trigger 。
- trigger 中调用 stored procedure 。
- stored procedure 中就可以用 UDF 了, UDF 可以外部访问,完成"通知"功能: https://dev.mysql.com/doc/refman/5.7/en/adding-udf.html 。
当然,不是 MySQL 功能这么弱的关系数据库这个功能多半都有现成方案,不用这么折腾了。