加入收藏 | 设为首页 | 会员中心 | 我要投稿 草根网 (https://www.1asp.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

mysql触发器调用外部脚本

发布时间:2022-11-29 12:43:35 所属栏目:教程 来源:
导读:  思路:

  需要安装一个mysql的udf函数。这样就可以了。

  源码:

  #在tbls表上面创建触发器

  #由于不能查询到刚插入的那条记录。所以只能在这边手动的传参

  drop TRIGGER trig
  思路:
 
  需要安装一个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_shmysql触发器,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`;
 

(编辑:草根网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章