mysql存储过程和事件

事件
什么是事件及其作用

event及“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发。通过单独或调用存储过程使用,在某一特定的时间点,触发相关的SQL语句或存储过程。
用于某一时间执行一个事件或周期性执行一个事件。

常见用法
  • 查看事件是否开启

SHOW VARIABLES LIKE 'event_scheduler';

  • 开启事件

SET GLOBAL event_scheduler = 1;

  • 创建事件
CREATE EVENT IF NOT EXISTS e_test
ON SCHEDULE EVERY 1 SECOND
ON COMPLETION PRESERVE
DO CALL select_stu();
  • 查看当前已有事件:
SHOW EVENTS
select * from mysql.event;
  • 删除事件

DROP EVENT [IF EXISTS] e_test;

  • 临时关闭事件
    alter event del_history disable;
  • 临时开启事件
    alter event del_history enable;
  • 删除计划任务
    drop event del_history;

创建存储过程
  • 什么是存储过程
    一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。
  • 事例一:
delimiter $$  #将语句的结束符号从分号;临时改为两个$$(可以是自定义)
create procedure delete_stu(in p_sid integer) begin delete from students where sid = p_sid; end$$
delimiter ;  #将语句的结束符号恢复为分号
  • 事例二:
delimiter $$
create procedure select_stu() begin select * from students; end$$
delimiter ;
  • 删除存储过程:

drop PROCEDURE select_stu;

  • 执行存储过程:

call delete_stu(10000);

  • 查看已创建存储过程

show procedure status;


参考:

  • https://blog.csdn.net/lixia755324/article/details/53923856
  • https://www.cnblogs.com/geaozhang/p/6797357.html

你可能感兴趣的:(mysql存储过程和事件)