使用 Node 创建新的 MySQL 行时执行操作

Perform an action when a new MySQL row is created using Node

我正在 node.js 中制作一个 Slack 机器人。我有一个带有 MySQL 数据库的网站,每当有人创建新的 post 时,数据库中就会添加一个新行。我想在创建新 post 时在 Slack 中发送一条消息,但我不知道如何在添加新行时触发一些代码。

我正在使用 Node、MySQL 插件和 Slack API,但最后一部分应该无关紧要。

我只需要一个代码片段,它可以在特定 table 中出现新行时触发一些其他代码。

提前致谢!

最简单的解决方案是通过跟踪 MYSQL BIN 日志来跟踪事件 https://www.npmjs.com/package/mysql-events

这个 npm 包可以跟踪插入、更新和删除事件。

或者,您可以为各种事件(在您的情况下为 INSERT)设置 MYSQL 触发器。 但是 MYSQL 触发器有一个限制,你不能触发 NodeJs 代码,但它只能 运行 SQL 存储过程或查询。 您可以创建一个 postEventLog table 并在插入后为每个插入的行设置触发器。

https://www.mysqltutorial.org/mysql-triggers/mysql-after-insert-trigger/

然后您可以在指定的时间间隔持续检查 table 中的新更改。

以防万一,您不想要额外的 table。继续轮询 post table 中的新更改,如果找到新记录,则执行您的自定义逻辑以调用 slack API/ 通知客户端。