mysql事件删除失败_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 30SECOND-> ONCOMPLETION PRESERVE-> DO INSERT INTO tb_eventtest(user,createtime) VALUES('MySQL',NOW());

Query OK,0 rows affected (0.04sec)

mysql> TRUNCATE TABLEtb_eventtest;

Query OK,0 rows affected (0.04sec)

mysql> SELECT * FROMtb_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> ALTEREVENT e_test DISABLE;

Query OK,0 rows affected (0.00 sec)

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

SELECT * FROM tb_eventtest;

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

mysql> TRUNCATE TABLEtb_eventtest;

Query OK,0 rows affected (0.05sec)

mysql> SELECT * FROMtb_eventtest;

Emptyset (0.00sec)

mysql> SELECT * FROMtb_eventtest;

Emptyset (0.00 sec)

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

删除事件

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

DROP EVENT [IF EXISTS] event_name

例 3

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

mysql> DROP EVENT IF EXISTSe_test;

Query OK,0 rows affected (0.01sec)

mysql> SELECT * FROMinformation_schema.events \G

Emptyset (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值