mysql 定时每秒插入向表插入数据

最近接到个需求需要数据库表中每秒都需要有数据,大量的数据。求后端帮忙添加各种推脱,没时间。数据够了吧。。要那么多干什么。。。所以狠下心来自力更生!!
实现的原理是:

  1. 创建一个插入数据的存储过程
  2. 用一个事件任务定时器每秒执行一次这个存储过程
  3. 事件需要手动开启
  4. 再手动开启定时器
    这时这个任务就会自动每秒插入一条数据

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;

你可能感兴趣的:(mysql 定时每秒插入向表插入数据)