mysql数据定义语句有哪些_MySQL的SQL语句 - 数据定义语句(3)- ALTER EVENT 语句

ALTER EVENT 语句

20201211122856122141.png

ALTER EVENT语句可以更改现有事件的一个或多个特征,而无需删除并重新创建它。DEFINER、ON SCHEDULE、ON COMPLETION、COMMENT、ENABLE/DISABLE和DO子句的语法与CREATE EVENT使用时的语法完全相同。

只要用户拥有数据库的EVENT权限,就可以更改在数据库上定义的事件。当用户成功执行ALTER EVENT语句时,该用户将成为事件的定义者。

ALTER EVENT仅适用于已存在事件:

20201211122856496555.png

在以下每个示例中,假设名为myevent的事件定义如下:

20201211122856964573.png

下面的语句将myevent的调度从立即开始的每六小时一次更改为每十二小时一次,从运行该语句起四小时开始:

20201211122857073777.png

可以在一个语句中更改事件的多个特征。此示例将myevent执行的SQL语句更改为从mytable中删除所有记录的语句;它还更改了事件的调度,使其在运行ALTER EVENT语句一天后执行一次。

20201211122857167381.png

在ALTER EVENT语句中只为要更改的那些特性指定选项;省略的选项保留其现有值。这包括CREATE EVENT的任何默认值,例如ENABLE。

要禁用myevent,请使用以下ALTER EVENT语句:

20201211122857245384.png

ON SCHEDULE子句可以使用包含内置MySQL函数和用户变量的表达式来获取它包含的任何timestamp或interval。不能在此类表达式中使用存储过程或用户定义函数,也不能使用任何表引用;但是,可以使用SELECT FROM DUAL。对于ALTER EVENT和CREATE EVENT语句都是这样。在这种情况下,引用存储过程、用户定义函数和表会引发错误。

尽管ALTER EVENT语句在其DO子句中包含另一个ALTER EVENT语句看起来是可行的,但是当服务器尝试执行结果的调度事件时,执行失败并报错。

要重命名事件,请使用ALTER EVENT语句的RENAME To子句。此语句将事件myevent重命名为yourevent:

20201211122857463792.png

还可以使用ALTER EVENT ... RENAME TO ... db_name.event_name 语句将事件移动到其他数据库,如下所示:

20201211122857557396.png

要执行前一条语句,执行该语句的用户必须对olddb和newdb数据库具有EVENT特权。

注意

不存在 RENAME EVENT 语句。

DISABLE ON SLAVE用于复制从属服务器,而不是ENABLE或DISABLE,来指示在主服务器上创建并复制到从属服务器上的事件,该事件不会在从属服务器上执行。通常,DISABLE ON SLAVE会根据需要自动设置;但是,在某些情况下,您可能希望或需要手动更改它。

官方文档地址:

https://dev.mysql.com/doc/refman/8.0/en/alter-event.html

MySQL的SQL语句 - 数据定义语句(3)- ALTER EVENT 语句

标签:html   interval   com   完全   ldd   mysq   code   包括   结果

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://blog.51cto.com/15023289/2560875

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值