欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

19、修改和删除事件(ALTER/DROP EVENT)

发布时间:2025/3/20 编程问答 73 豆豆
生活随笔 收集整理的这篇文章主要介绍了 19、修改和删除事件(ALTER/DROP EVENT) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

介绍 MySQL 删除和修改事件的方法。

修改事件

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

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

ALTER EVENT event_nameON SCHEDULE schedule[ON COMPLETION [NOT] PRESERVE][ENABLE | DISABLE | DISABLE ON SLAVE][COMMENT 'comment']DO event_body;

ALTER EVENT 语句中的子句与《17、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()); mysql> TRUNCATE TABLE tb_eventtest; mysql> SELECT * FROM tb_eventtest; +----+-------+---------------------+ | id | user | createtime | +----+-------+---------------------+ | 1 | MySQL | 2020-05-21 13:23:49 | | 2 | MySQL | 2020-05-21 13:24:19 | +----+-------+---------------------+

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

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

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

mysql> ALTER EVENT e_test DISABLE;

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

SELECT * FROM tb_eventtest;

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

mysql> TRUNCATE TABLE tb_eventtest; 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)

总结

以上是生活随笔为你收集整理的19、修改和删除事件(ALTER/DROP EVENT)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。