通过对活动进行调度,可以确保在一组预置的时间执行一组操作。
调度信息和事件处理程序都存储在数据库本身中。
可以通过将多个调度与一个指定的事件相关联,来定义复杂的调度,但通常并不必要这样做。例如,一家零售店可能希望某事件在营业时间每小时发生一次,而营业时间根据一周中的不同日期而变化。通过定义各自拥有自己的调度的多个事件,以及调用一个公用存储过程,您可以达到同样的效果。
对事件进行调度时,可以使用完整的英文日期名称(Monday、Tuesday 等),也可以使用日期的简写形式(Mon、Tue 等)。如果要想以英文以外的其它语言运行的服务器能够识别日期名称,您必须使用完整的英文日期名称。
以下示例可以帮助您初步了解可能有用的调度操作。
在每个工作日结束时汇总订单。
/* This example uses iqdemo.db. */
CREATE TABLE OrderSummary(c1 date, c2 int);
CREATE EVENT SummarizeSchedule
START TIME '6:00 pm'on ('Mon', 'Tue', 'Wed', 'Thu', 'Fri')
HANDLER
BEGIN
INSERT INTO DBA.OrderSummary
SELECT MAX(OrderDate),
COUNT(*)
FROM GROUPO.SalesOrders
WHERE OrderDate = current date
END;