drop procedure if exists p_add_part_month;
DELIMITER //
create procedure p_add_part_month(tab_name varchar(50),dtime datetime)
begin
declare p1_name varchar(50) default concat('p_',date_format(dtime,'%Y%m'));
declare p1_time varchar(20) default concat(date_format(DATE_ADD(dtime,INTERVAL 1 MONTH),'%Y-%m'),'-01 00:00:00');
set @v_add=concat('ALTER TABLE ',tab_name,' reorganize partition part_other into
(PARTITION ',p1_name,' VALUES LESS THAN (\'',p1_time,'\'),
PARTITION part_other VALUES LESS THAN (MAXVALUE))');
prepare stm from @v_add;
execute stm;
deallocate prepare stm;
end;
//
DELIMITER ;
-- 设置开启(数据库默认是关闭的,这个需要在my.cnf中设置下,否则数据库重启后会自动关闭)
set global event_scheduler = 1;
-- 查看任务调度启动状态
show global VARIABLES like 'event_scheduler';
-- 查看当前事务
show full processlist;
-- 添加sjkk_gcjl表的分区维护任务
-- 删除任务调度
drop event
MySQL 按月给表分区存储过程
最新推荐文章于 2024-08-21 14:07:52 发布
本文详细介绍了如何在MySQL中创建按月份进行分区的存储过程,包括步骤、语法及其实现方法,帮助读者理解如何优化大数据量表的查询效率。
摘要由CSDN通过智能技术生成