最近接到个需求需要数据库表中每秒都需要有数据,大量的数据。求后端帮忙添加各种推脱,没时间。数据够了吧。。要那么多干什么。。。所以狠下心来自力更生!!
实现的原理是:
- 创建一个插入数据的存储过程
- 用一个事件任务定时器每秒执行一次这个存储过程
- 事件需要手动开启
- 再手动开启定时器
这时这个任务就会自动每秒插入一条数据
1、创建存储过程
# NOW()获取当前时间 FLOOR(1+(RAND()*60))从1~60中随机获取一个整数
CREATE PROCEDURE insetUserProcedure()
BEGIN
INSERT INTO user(time,name,sex,money) VALUES (NOW(),'mm','1',FLOOR(1+(RAND()*60)));
END
2、创建事件定时器
# 这个事件主要用来执行存储过程 一秒钟执行一次
CREATE EVENT IF NOT EXISTS eventUser
ON SCHEDULE EVERY 1 SECOND
ON COMPLETION PRESERVE
DO CALL insetUserProcedure();
3、开启和关闭事件
# 开启事件test_event
alter event eventUseron completion preserve enable;
# 关闭事件test_event
alter event eventUseron completion preserve disable;
4、启动和关闭定时器
# 启动定时器
SET GLOBAL event_scheduler = 1;
5、另外造完假数据别忘了删了清理存储过程、事件和关闭定时器,
# 查看事件
SHOW EVENTS;
# 删除事件
DROP EVENT eventUser;
# 停止定时器
SET GLOBAL event_scheduler = 0;
# 删除存储过程
DROP PROCEDURE insetUserProcedure;