先来看一下它的语法:
CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE] [COMMENT ‘comment’] DO sql_statement / call proce() ; –这可以是sql语句或 call 存储过程名() schedule: AT TIMESTAMP [+ INTERVAL INTERVAL] | EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP] INTERVAL: quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH 以上比较官方,我们通过一个例子来直观的理解一下:
首先创建一个测试test表格 CREATE TABLE IF NOT EXISTS test( id INT PRIMARY KEY AUTO_INCREMENT, message VARCHAR(255) NOT NULL, created_at DATETIME NOT NUL);使用SQL语句创建事件 CREATE EVENT IF NOT EXISTS test_event_01 ON SCHEDULE AT CURRENT_TIMESTAMP DO INSERT INTO test(message,created_at) VALUES(‘测试MySQL事件执行(1)’,NOW()); 此时刷新测试表就会出现插入了一条数据,这只是利用事件执行了一次我们来试着让它自动执行多次以下语句创建每隔一分钟执行一次并且在创建时间后1小时内过期的重复事件:CREATE EVENT test_event_03 ON SCHEDULE EVERY 1 MINUTE STARTS CURRENT_TIMESTAMP ENDS CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO INSERT INTO test(message,created_at) VALUES(‘测试MySQL重复事件’,NOW());
当然可以通过这些方法来仔细去体会每个参数的用法,建议使用数据库图形化工具来创建事件会简单很多,因为工具会利用图形化的方式帮助我们创建各种我们所需参数,希望可以帮助大家。
新闻热点
疑难解答