《从实例出发教会你如何创建并执行事件!》中我们已经学会了创建事件,那么如何对事件进行删改呢?其实,我们之前已经提到了删除事件的一点知识,使用DROP EVENT来进行事件删除。这一小节,我将详细向大家删改事件的详细步骤:

怎么删?

首先你得有个事件吧,我们有个dotcpp_user表:

dotcpp_user表

创建一个事件insert_user,为dotcpp_user表每10秒插入一名用户('Suser','do coding!'):

CREATE EVENT insert_user 
ON SCHEDULE EVERY 10 SECOND
DO
    INSERT INTO dotcpp_user (name, hobby)
    VALUES ('Suser', 'do coding!');

一段时间过后,发现用户大增:

通过insert_user事件不断向dotcpp_user表格添加用户

好了,没必要这么多,可以停止事件insert_user;

删除事件的语法是:

DROP EVENT 你的事件名;

现在我们就把这个插入事件删除掉:

DROP EVENT insert_user;

插入事件删除后,dotcpp_user表就没有再增加用户了,成功学会删除语法。


怎么改?

我们可以通过ALTER EVENT进行事件修改:

先准备个事件吧,select_user事件每10s对dotcpp_user进行一次查询:

USE dotcpp;
CREATE EVENT select_user
ON SCHEDULE EVERY 10 SECOND
DO
    SELECT * FROM dotcpp_user;

修改时间的语法如下:

ALTER EVENT [IF EXISTS] event_name   -- 修改哪个事件
[ON SCHEDULE schedule]   -- 定义事件执行时间和频率
[ON COMPLETION [NOT] PRESERVE]   -- 事件执行后是否保留
[RENAME TO new_event_name]   -- 是否需要重命名
[ENABLE | DISABLE | DISABLE ON SLAVE]   -- 是否禁用
[COMMENT 'comment']   -- 为事件添加注释
[DO event_body]   -- 执行内容

那就简单修改这个事件,如果需要每20s进行一次查询,那我们就这样修改

ALTER EVENT select_user
ON SCHEDULE  EVERY 20 SECOND
ON COMPLETION NOT PRESERVE   -- 这里重复一次就给关了,懒得drop了
COMMENT '修改完直接给关了'
DO
SELECT * FROM dotcpp_user;

进行事件查看:

SHOW CREATE EVENT select_user \G

查看事件select_user情况

由于客户端字符集和服务端字符集不匹配导致出现乱码问题,我后面会全局配置好 utf8mb4的,不知道怎么配置可以看看《如何对默认字符集和校对规则进行修改?》

修改后select_user事件解释:这是一个名为"select_user"的MySQL定时事件,由root用户在本机创建。该事件被配置为每20秒执行一次,由于使用了"NOT PRESERVE"属性,所以执行一次就会自动删除,具体内容是查询dotcpp_user数据表的所有记录。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)