CREATE EVENT myevent
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
DO
BEGIN
UPDATE mytable SET mycol = mycol + 1;
END |
DELIMITER ;
这里注意用|来表示结束符号。这个事件是每隔1个小时更新数据表一次了
可以通过SHOW EVENTS\G 去看事件,如下
mysql> SHOW EVENTS\G
********************** 1. row **********************
Db: mysql
Name: myevent
Definer: dbuser@localhost
Time zone: SYSTEM
Type: ONE TIME
Execute At: 2011-10-26 20:24:19
Interval Value: NULL
Interval Field: NULL
Starts: NULL
Ends: NULL
Status: ENABLED
Originator: 0
character_set_client: utf8
collation_connection: utf8_general_ci
event在完成后会自动结束,除非显式地声明关闭,即
CREATE EVENT myevent
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
ON COMPLETION PRESERVE
DO
BEGIN
UPDATE mytable SET mycol = mycol + 1;
END |
使用on completion即可
event结束后,其实还留在数据库中,除非drop掉,即
DROP EVENT myevent;
如果要循环执行event,用every,即
CREATE EVENT myevent
ON SCHEDULE EVERY 1 HOUR
DO
BEGIN
UPDATE mytable SET mycol = mycol + 1;
END |
也可以指定开始和结束时间
CREATE EVENT myevent
ON SCHEDULE EVERY 1 HOUR
STARTS CURRENT_TIMESTAMP + INTERVAL 1 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 1 YEAR
DO
BEGIN
UPDATE mytable SET mycol = mycol + 1;
END |