mysql触发器调⽤外部脚本思路:
需要安装⼀个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 lect sys_exec(script_str_sh);
OPEN cur2;
inrt st_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 lect sys_exec(script_str);
海青茶>胡特inrt st_1(name,date_time,type) values(script_str,NOW(),'partition');
肌肉痛是什么原因OPEN cur1;
CLOSE cur1;
END;竞赛口号
#SELECT * FROM information_schema.`TRIGGERS`;