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;


参考:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容