码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2020-12-11 12:28:56      阅读:8      评论:0      收藏:0      [点我收藏+]

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

ALTER EVENT 语句

技术图片

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

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

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

技术图片

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

技术图片

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

技术图片

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

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

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

技术图片

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

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

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

技术图片

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

要执行前一条语句,执行该语句的用户必须对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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!