它不一定是数据库中的触发器。我只想知道应该如何设计它,以便在mysql或sqlserver内部进行更改时,可以触发一些脚本。
q43xntqr1#
一种方法是在数据库中最后更新的行上保留一个计数器,然后需要在短时间内通过python轮询(检查)数据库以获取新记录。如果计数器中的值增加,则可以使用 subprocess 模块调用另一个python脚本。
subprocess
olmpazwi2#
从mysql触发器执行外部脚本是可能的,但我从未使用过它,也不知道这样做的含义。mysql提供了一种实现自己函数的方法,称为用户定义函数。有了它,您可以定义自己的函数并从mysql事件调用它们。您需要按照mysql提供的接口在c程序中编写自己的逻辑。幸运的是,已经有人做了一个库来从mysql调用一个外部程序:lib\u mysqludf\u sys。安装后,以下触发器应工作:
CREATE TRIGGER Test_Trigger AFTER INSERT ON MyTable FOR EACH ROW BEGIN DECLARE cmd CHAR(255); DECLARE result int(10); SET cmd=CONCAT('/YOUR_SCRIPT'); SET result = sys_exec(cmd); END;
2条答案
按热度按时间q43xntqr1#
一种方法是在数据库中最后更新的行上保留一个计数器,然后需要在短时间内通过python轮询(检查)数据库以获取新记录。
如果计数器中的值增加,则可以使用
subprocess
模块调用另一个python脚本。olmpazwi2#
从mysql触发器执行外部脚本是可能的,但我从未使用过它,也不知道这样做的含义。
mysql提供了一种实现自己函数的方法,称为用户定义函数。有了它,您可以定义自己的函数并从mysql事件调用它们。您需要按照mysql提供的接口在c程序中编写自己的逻辑。
幸运的是,已经有人做了一个库来从mysql调用一个外部程序:lib\u mysqludf\u sys。安装后,以下触发器应工作: