感谢?lxgwm2008?对MySQL之Event的分享,特此收藏,?查看文章; 最近工作正好需要用到这样的需求.?
以下是简单应用
?
-- 查询事件触发器开关-- SHOW VARIABLES LIKE 'event_sc%';-- 打开触发器开关SET GLOBAL event_scheduler = 1;-- 测试存储过程DROP PROCEDURE IF EXISTS `up_report_proc_4_event`;CREATE PROCEDURE up_report_proc_4_event ()BEGIN -- **************************************** -- -- ********* 要执行的语句内容 ************* -- -- **************************************** -- -- 表结构 -- DROP TABLE IF EXISTS `t_event_test`; -- CREATE TABLE `t_event_test` ( -- `id` int(11) NOT NULL AUTO_INCREMENT, -- `val` varchar(100) NOT NULL, -- PRIMARY KEY (`id`) -- ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; INSERT INTO VALUES (NULL, NOW());END;-- 触发器, 每隔5秒执行一次存储过程 `up_report_proc_4_event`DROP EVENT IF EXISTS up_report_proc_4_event;CREATE EVENT up_report_proc_4_event ON SCHEDULE EVERY 5 SECOND ON COMPLETION PRESERVE DO CALL up_report_proc_4_event ();-- 将事件调度器为用户授权-- root 用户名-- iwifi 目标数据库GRANT EVENT ON iwifi.* TO root;-- 开启事件ALTER EVENT up_report_proc_4_event ON COMPLETION PRESERVE ENABLE;-- ----------------------------------------------------------- 查询触发器信息SELECT * -- e.LAST_ALTERED, -- e.LAST_EXECUTEDFROM INFORMATION_SCHEMA. EVENTS eWHERE EVENT_NAME = 'up_report_proc_4_event';
?