Alter [definer = .用户]事件event_name(在时间表时间表][在完成时[不]保留][重命名为。new_event_name[enable | disable | disable on slave][注释'字符串”][做event_body]
的改变事件
语句更改现有事件的一个或多个特征,而不需要删除并重新创建它。的语法定义者
,按计划
,在完成
,评论
,启用
/禁用
,做
从句和with的用法完全一样创建事件
.(见第13.1.12节,CREATE EVENT语句)。
属性的数据库上定义的事件,任何用户都可以更改事件
特权。当用户执行成功改变事件
语句,该用户将成为受影响事件的定义者。
改变事件
仅适用于现有事件:
mysql> ALTER EVENT no_such_event错误1517 (HY000):未知事件'no_such_event'
在以下每个示例中,假设事件命名为myevent
定义如下所示:
创建事件myevent在时间表上每6小时注释'一个样本注释。'更新我的模式。mytableSET mycol = mycol + 1;
下面的语句更改的调度myevent
从立即开始的每6小时一次到每12小时一次,从语句运行后4小时开始:
改变事件myevent在计划每12小时启动CURRENT_TIMESTAMP +间隔4小时;
可以在一条语句中更改事件的多个特征。此示例更改由执行的SQL语句myevent
删除所有记录的mytable
;它还更改事件的计划,以便在事件发生后一天执行一次改变事件
语句运行。
截断myschema.mytable表
属性中的选项改变事件
声明只针对那些您想要更改的特性;省略的选项保留其现有值。的任何默认值创建事件
如启用
.
禁用myevent
用这个改变事件
声明:
禁用myevent事件
的按计划
子句可以使用包含内置MySQL函数和用户变量的表达式来获得任何时间戳
或时间间隔
它包含的值。在这样的表达式中不能使用存储例程或用户定义函数,也不能使用任何表引用;但是,您可以使用从dual中选择
.两者都是如此改变事件
而且创建事件
语句。在这种情况下,特别不允许引用存储的例程、用户定义的函数和表,并且会失败并报错(参见Bug #22830)。
尽管一个改变事件
包含其他语句的语句改变事件
在其做
子句出现成功时,当服务器试图执行结果的计划事件时,执行失败并报错。
要重命名事件,请使用改变事件
声明的重命名为
条款。该语句重命名事件myevent
来yourevent
:
重命名为你的事件
还可以使用将事件移动到不同的数据库更改事件…重命名为…
而且
符号,如下所示:db_name.event_name
ALTER EVENT olddbmyevent重命名为newdb.myevent;
要执行前面的语句,执行它的用户必须具有事件
特权在olddb
而且newdb
数据库。
没有重命名事件
声明。
的值在slave上禁用
是用在复制品上而不是启用
或禁用
指示在源上创建并复制到副本,但未在副本上执行的事件。通常情况下,在slave上禁用
根据需要自动设置;但是,在某些情况下,您可能希望或需要手动更改它。看到16.4.1.16节“被调用特性的复制”,以获取更多资料。