簡體   English   中英

如果在數據庫(如MySQL)中有任何數據更新,是否可以觸發腳本或程序?

[英]Is it possible to trigger a script or program if any data is updated in a database, like MySQL?

它不必完全是數據庫內部的觸發器。 我只想知道我應該如何設計它,以便在MySQL或SQL Server中進行更改時,可以觸發一些腳本。

一種方法是在數據庫中最后更新的行上保留一個計數器,然后您需要在短時間內通過python不斷輪詢(檢查)數據庫以查找新記錄。
如果計數器中的值增加,則可以使用subprocess模塊來調用另一個Python腳本。

可以從MySql觸發器執行外部腳本,但是我從未使用過它,也不知道類似這樣的含義。

MySql提供了一種實現自己的功能的方法,稱為用戶定義函數 這樣,您可以定義自己的函數並從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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM