目录
显示
1.创建存储过程
#-----创建存储过程
CREATE PROCEDURE ctrlcctrlv_table(var VARCHAR(20))
BEGIN
SET @param1 = concat('ALTER TABLE ', var, ' RENAME ', var, DATE_FORMAT(NOW(), '%Y_%m_%d'));
PREPARE stmt FROM @param1;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @param2 = concat('CREATE table ', var, ' like ', var, DATE_FORMAT(NOW(), '%Y_%m_%d'));
PREPARE stmt1 FROM @param2;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END;
2.创建EVEN事件
#---创建even事件
create event ctrlcctrlv_event
on schedule every 1 DAY STARTS '2021-01-21 00:00:00'
on completion preserve disable
do call ctrlcctrlv_table("表名称"); 写自己的表名
3.启用EVEN
#---启用事件
alter event ctrlcctrlv_event on completion preserve enable;
#---查询事件
SELECT * FROM information_schema.EVENTS;
#---删除event
DROP EVENT IF EXISTS event_1;
DROP EVENT IF EXISTS event_2;
DROP EVENT IF EXISTS event_insert_SECOND;
4.测试存储过程
#--测试存储过程执行情况
call ctrlcctrlv_table("zong_biao");
来点干货在mysql里面测试一下
创建一张测试表
CREATE TABLE `test_cut_demo` (
`id` int NOT NULL AUTO_INCREMENT,
`username` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`create_time` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`day` datetime DEFAULT NULL COMMENT '日期',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2997 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
添加一个循环插入的EVENT
#--创建循环测试插入数据
delimiter $$
create event event_insert_SECOND
on schedule every 2 SECOND STARTS CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
COMMENT 'xiaowu create'
do
BEGIN
insert into new_cut.test_cut_demo(username,password,create_time,day) values("李四","tomcat",now(),curdate());
END $$
delimiter ;
#----红色库名,蓝色表明
添加事件启动
alter event event_insert_SECOND on completion preserve enable;
查看数据库表中是否开始循环插入数据

调用存储过程测试是否可以进行表切割
#--测试存储过程执行情况
call ctrlcctrlv_table("test_cut_demo");