【问题标题】:Is it possible to trigger a script or program if any data is updated in a database, like MySQL?如果数据库(如 MySQL)中的任何数据更新,是否可以触发脚本或程序?
【发布时间】:2018-12-08 01:12:11
【问题描述】:

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

【问题讨论】:

标签: python mysql sql-server


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    可以从 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;
    

    【讨论】:

      猜你喜欢
      • 2020-03-18
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      • 2012-08-31
      • 2023-04-09
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      相关资源
      最近更新 更多