美文网首页
mysql存储过程和事件

mysql存储过程和事件

作者: liamu | 来源:发表于2018-06-14 14:08 被阅读16次
    事件
    什么是事件及其作用

    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;


    参考:

    相关文章

      网友评论

          本文标题:mysql存储过程和事件

          本文链接:https://www.haomeiwen.com/subject/qmkyeftx.html