功能:每3秒刪除b表數據,查詢a表中的5條數據并插入b表。
/* 查看mysql事件狀態 */
show variables like '%event_scheduler%';/* 開啟mysql事件 */
SET GLOBAL event_scheduler = ON;/* 測試a表*/
CREATE TABLE `test_a` (`id` int(11) NOT NULL AUTO_INCREMENT,`score_value` int(11) NOT NULL DEFAULT '0',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;/* 測試b表*/
CREATE TABLE `test_b` (`id` int(11) NOT NULL AUTO_INCREMENT,`score_value` int(11) NOT NULL DEFAULT '0',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;/* 創建事件 */
CREATE EVENT IF NOT EXISTS event_test
/* 事件每三秒執行一次,也可以設置分minute或hour */
ON SCHEDULE EVERY 3 SECOND
ON COMPLETION PRESERVE
/* 使用proc_test存儲過程 */
DO CALL proc_test(); ? ?/* 創建proc_test存儲過程 */ ? ?
DELIMITER //?
CREATE PROCEDURE proc_test()?
BEGIN?
/* 刪除test_b表數據 */ ? ?
TRUNCATE TABLE test_b;
/* 1.查詢test_a表數據,2.插入到test_b表 注意插入的數據中不能有id主鍵*/ ? ?
INSERT into test_b(score_value)select score_value from test_a where score_value = 5730 order by id desc limit 5;
END?
//?
DELIMITER ;/* 查看存儲過程 */ ? ?
show procedure status;
/* 查看事件 */ ? ?
show events
/* 刪除事件 */ ? ?
drop event event_test
/* 刪除存儲過程 */ ? ?
drop procedure proc_test
?