Run python script on Database event

2020-02-26 01:34发布

I'm running a python script that makes modifications in a specific database. I want to run a second script once there is a modification in my database (local server).

Is there anyway to do that?

Any help would be very appreciated. Thanks!

2条回答
太酷不给撩
2楼-- · 2020-02-26 01:54

You can use 'Stored Procedures' in your database a lot of RDBMS engines support one or multiple programming languages to do so. AFAIK postgresql support signals to call external process to. Google something like 'Stored Procedures in Python for PostgreSQL' or 'postgresql trigger call external program'

查看更多
家丑人穷心不美
3楼-- · 2020-02-26 02:02

Thanks for your answers, i found a solution here:

http://crazytechthoughts.blogspot.fr/2011/12/call-external-program-from-mysql.html

A Trigger must be defined to call an external function once the DB Table is modified:

DELIMITER $
CREATE TRIGGER Test_Trigger
AFTER INSERT ON SFCRoutingTable
FOR EACH ROW
BEGIN
DECLARE cmd CHAR(255);
DECLARE result int(10);
SET cmd = CONCAT('python /home/triggers.py');
SET result = sys_exec(cmd);
END;
$
DELIMITER ;

Here, to call my python script, I use 'sys_exec' which is a UDF (User Defined Function). You can download the library from here: https://github.com/mysqludf/lib_mysqludf_sys

查看更多
登录 后发表回答