zoukankan      html  css  js  c++  java
  • MySQL教程120-MySQL修改和删除事件

    修改事件

    在 MySQL 中,事件创建之后,可以使用 ALTER EVENT 语句修改其定义和相关属性。

    修改事件的语法格式如下:

    ALTER
        [DEFINER = user]
        EVENT event_name
        [ON SCHEDULE schedule]
        [ON COMPLETION [NOT] PRESERVE]
        [RENAME TO new_event_name]
        [ENABLE | DISABLE | DISABLE ON SLAVE]
        [COMMENT 'string']
        [DO event_body]

    ALTER EVENT 语句中的子句与MySQL创建事件一节中讲解的基本相同,这里不再赘述。另外,ALTER EVENT 语句还有一个用法就是让一个事件关闭或再次让其活动。

    例 1

    修改 e_test 事件,让其每隔 30 秒向表 tb_eventtest 中插入一条数据,SQL 语句和运行结果如下所示:

    mysql> ALTER EVENT e_test ON SCHEDULE EVERY 30 SECOND
        -> ON COMPLETION PRESERVE
        -> DO INSERT INTO tb_eventtest(user,createtime) VALUES('MySQL',NOW());
    Query OK, 0 rows affected (0.04 sec)
    
    mysql> TRUNCATE TABLE tb_eventtest;
    Query OK, 0 rows affected (0.04 sec)
    
    mysql> SELECT * FROM tb_eventtest;
    +----+-------+---------------------+
    | id | user  | createtime          |
    +----+-------+---------------------+
    |  1 | MySQL | 2020-08-28 13:23:49 |
    |  2 | MySQL | 2020-08-28 13:24:19 |
    +----+-------+---------------------+
    2 rows in set (0.00 sec)

    由结果可以看出,修改事件后,表 tb_eventtest 中的数据由原来的每 5 秒插入一条,变为每 30 秒插入一条。

    使用 ALTER EVENT 语句还可以临时关闭一个已经创建的事件。

    例 2

    临时关闭事件 e_test 的具体代码如下所示:

    mysql> ALTER EVENT e_test DISABLE;
    Query OK, 0 rows affected (0.00 sec)

    查询 tb_eventtest 表中的数据,SQL 语句如下:

    SELECT * FROM tb_eventtest;

    为了确定事件已关闭,可以查询两次(每次间隔 1 分钟)tb_eventtest 表的数据,SQL 语句和运行结果如下所示:

    mysql> TRUNCATE TABLE tb_eventtest;
    Query OK, 0 rows affected (0.05 sec)
    
    mysql> SELECT * FROM tb_eventtest;
    Empty set (0.00 sec)
    
    mysql> SELECT * FROM tb_eventtest;
    Empty set (0.00 sec)

    由结果可以看出,临时关闭事件后,系统就不再继续向表 tb_eventtest 中插入数据了。

    删除事件

    在 MySQL 中,可以使用 DROP EVENT 语句删除已经创建的事件。语法格式如下:

    DROP EVENT [IF EXISTS] event_name

    例 3

    删除事件 e_test,SQL 语句和运行结果如下:

    mysql> DROP EVENT IF EXISTS e_test;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> SELECT * FROM information_schema.events G
    Empty set (0.00 sec)
  • 相关阅读:
    12345679*81=?
    怪异,漂亮的几个数学恒等式(转)
    道路着色问题
    一组数学算式的欣赏(转)
    数学中奇妙的“金蝉脱壳”(转)
    数学中的分分合合(转)
    四方定理和卡布列克常数(转)
    简单的题目 有趣的现象
    Android学习笔记 第三节 基本控件学习
    Android学习笔记 第二节 HelloWorld程序
  • 原文地址:https://www.cnblogs.com/no-celery/p/13577071.html
Copyright © 2011-2022 走看看