The ALTER EVENT statement changes
one or more of the characteristics of an existing event without
the need to drop and recreate it. The syntax for each of the
DEFINER, ON SCHEDULE,
ON COMPLETION, COMMENT,
ENABLE / DISABLE, and
DO clauses is exactly the same as
when used with CREATE EVENT. (See
Section 13.1.13, “CREATE EVENT Syntax”.)

Any user can alter an event defined on a database for which that
user has the EVENT privilege. When
a user executes a successful ALTER
EVENT statement, that user becomes the definer for the
affected event.

It is possible to change multiple characteristics of an event in a
single statement. This example changes the SQL statement executed
by myevent to one that deletes all records from
mytable; it also changes the schedule for the
event such that it executes once, one day after this
ALTER EVENT statement is run.

Specify the options in an ALTER
EVENT statement only for those characteristics that you
want to change; omitted options keep their existing values. This
includes any default values for CREATE
EVENT such as ENABLE.

The ON SCHEDULE clause may use expressions
involving built-in MySQL functions and user variables to obtain
any of the timestamp or
interval values which it contains. You
cannot use stored routines or user-defined functions in such
expressions, and you cannot use any table references; however, you
can use SELECT FROM DUAL. This is true for both
ALTER EVENT and
CREATE EVENT statements. References
to stored routines, user-defined functions, and tables in such
cases are specifically not permitted, and fail with an error (see
Bug #22830).

Although an ALTER EVENT statement
that contains another ALTER EVENT
statement in its DO clause appears
to succeed, when the server attempts to execute the resulting
scheduled event, the execution fails with an error.

To rename an event, use the ALTER
EVENT statement's RENAME TO clause.
This statement renames the event myevent to
yourevent:

ALTER EVENT myevent
RENAME TO yourevent;

You can also move an event to a different database using
ALTER EVENT ... RENAME TO ... and
db_name.event_name
notation, as shown here:

ALTER EVENT olddb.myevent
RENAME TO newdb.myevent;

To execute the previous statement, the user executing it must have
the EVENT privilege on both the
olddb and newdb databases.

Note

There is no RENAME EVENT statement.

The value DISABLE ON SLAVE is used on a
replication slave instead of ENABLE or
DISABLE to indicate an event that was created
on the master and replicated to the slave, but that is not
executed on the slave. Normally, DISABLE ON
SLAVE is set automatically as required; however, there
are some circumstances under which you may want or need to change
it manually. See Section 17.4.1.16, “Replication of Invoked Features”,
for more information.