mysql觸發器呼叫外部指令碼

2021-06-26 01:37:49 字數 1454 閱讀 4054

思路:

需要安裝乙個mysql的udf函式。這樣就可以了。

原始碼:#在tbls表上面建立觸發器

#由於不能查詢到剛插入的那條記錄。所以只能在這邊手動的傳參

drop trigger trigger_tbls;

create trigger trigger_tbls after insert on hive_metastore.tbls 

for each row

begin

declare script_sh varchar(200) default 'sh /opt/trigger/trigger_tbls.sh ';

declare h_num varchar(300) default new.tbl_id; 

declare script_str_sh varchar(2000) default concat(script_sh,h_num);

declare cur2 cursor for select sys_exec(script_str_sh);

open cur2;

insert into test.test_1(name,date_time,type) values(script_str_sh,now(),'table_meta');

close cur2;

end;

#在partition上面建立觸發器

drop trigger trigger_tbls_partition;

create trigger trigger_tbls_partition after insert on hive_metastore.partition_keys

for each row

begin

declare script varchar(4000) default 'sh /opt/trigger/trigger_par.sh '; 

declare num varchar(300) default new.tbl_id;

declare key_name varchar(300) default new.pkey_name;

declare key_name_str varchar(300) default concat(" ",key_name);

declare script_str varchar(4000) default concat(script,num,key_name_str);

declare cur1 cursor for select sys_exec(script_str);

insert into test.test_1(name,date_time,type) values(script_str,now(),'partition');

open cur1;

close cur1;

end;

#select * from information_schema.`triggers`;

mysql觸發器呼叫外部指令碼

mysql觸發器呼叫外部指令碼,我查詢資料後選擇使用lib mysqludf sys,但是中間出現很多問題,記錄下來正確方式分享如下 使用系統centos 7.5 64位 首先是獲取lib mysqludf sys github 把檔案上傳到伺服器 使用方法在lib mysqludf sys.htm...

觸發器 mysql觸發器

觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...

my sql 觸發器 mysql建立觸發器

首先,我們來了解一下什麼是觸發器,觸發器,就是在對一張表資料進行增 insert 刪 delete 改 update 的時候,為了保持資料的一致性,對別的表也要進行相應的資料修改。我們都知道mysql最後事務提交後,資料是會儲存到磁碟上的,那麼每次在insert,delete,update時候舊資料...