如果在数据库(如MySQL)中有任何数据更新,是否可以触发脚本或程序?

时间:2018-12-08 01:12:12

标签: python mysql sql-server

它不一定完全是数据库内部的触发器。我只想知道我应该如何设计它,以便在MySQL或SQL Server中进行更改时,可以触发一些脚本。

2 个答案:

答案 0 :(得分:0)

一种方法是在数据库中最后更新的行上保留一个计数器,然后需要在短时间内通过python轮询(检查)数据库以查找新记录。
如果计数器中的值增加,则可以使用subprocess模块来调用另一个Python脚本。

答案 1 :(得分:0)

可以从MySql触发器执行外部脚本,但我从未使用过它,也不知道类似这样的含义。

MySql提供了一种实现自己的功能的方法,称为User Defined Functions。这样,您可以定义自己的函数并从MySql事件中调用它们。您需要遵循MySql提供的接口,在C程序中编写自己的逻辑。

幸运的是,已经有人通过MySql LIB_MYSQLUDF_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;