MySQL事件触发器--好文推荐

感谢 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_EXECUTED
FROM
	INFORMATION_SCHEMA. EVENTS e
WHERE
	EVENT_NAME = 'up_report_proc_4_event';

猜你喜欢

转载自dayongge.iteye.com/blog/2205746