Understanding schedules

By scheduling activities you can ensure that a set of actions is executed at a set of preset times. The scheduling information and the event handler are both stored in the database itself.

Although this is not usually necessary, you can define complex schedules by associating more than one schedule with a named event. For example, a retail outlet might want an event to occur once per hour during hours of operation, where the hours of operation vary based on the day of the week. You can achieve the same effect by defining multiple events, each with its own schedule, and by calling a common stored procedure.

When scheduling events, you can use either full-length English day names (Monday, Tuesday, and so on) or the abbreviated forms of the day (Mon, Tue, and so on). Note that you must use the full-length English day names if you want the day names to be recognized by a server running in a language other than English.

The following examples give some ideas for scheduled actions that may be useful.

Examples

Perform an incremental backup daily at 1:00 A.M.:

CREATE EVENT IncrementalBackup
SCHEDULE
 START TIME '1:00 AM' EVERY 24 HOURS
HANDLER
BEGIN
 BACKUP DATABASE DIRECTORY 'c:\\backup'
 TRANSACTION LOG ONLY
 TRANSACTION LOG RENAME MATCH
END;

Summarize orders at the end of each business day:

CREATE EVENT Summarize
SCHEDULE
 START TIME '6:00 pm'
 ON ( 'Monday', 'Tuesday', 'Wednesday', 'Thursday',
  'Friday' )
HANDLER
 BEGIN
 INSERT INTO OrderSummary
  SELECT CURRENT DATE,
     COUNT( * ),
     SUM( amount )
  FROM Orders
  WHERE date_ordered = current date
END;
See also

Defining schedules