MySQL 分区创建

编程入门 行业动态 更新时间:2024-10-24 18:29:05

MySQL <a href=https://www.elefans.com/category/jswz/34/1768534.html style=分区创建"/>

MySQL 分区创建

创建分区存储过程
# 修改maxvalue ,添加新的分区
ALTER TABLE test_userREORGANIZE PARTITION default_partINTO (PARTITION p3 VALUES LESS THAN (400), PARTITION default_part VALUES LESS THAN MAXVALUE);## 修改pN为default_part
ALTER TABLE test_userREORGANIZE PARTITION pNINTO (PARTITION p5 VALUES LESS THAN (600), PARTITION default_part VALUES LESS THAN MAXVALUE);
#合并分区
alter table userreorganize partition p0,p1,p2,p3 into(partition p02 values less than (12));# 创建分区存储过程
DROP PROCEDURE IF EXISTS add_partition;
DELIMITER //CREATE PROCEDURE add_partition()
BEGINDECLARE max_pd_num INT;DECLARE max_pd_name varchar(32);DECLARE netxt_pation INT;DECLARE netxt_pation_name varchar(32);DECLARE max_id INT;DECLARE cur_test1 CURSOR FORSELECT max(PARTITION_NAME)        as 'max_pd_name',max(partition_description) as 'max_pd_num'FROM information_schema.PARTITIONSWHERE table_schema = 'mydatabase'AND table_name = 'test_user'AND PARTITION_NAME like "p%";DECLARE cur_max_id CURSOR FORSELECT max(id) as 'max_id'FROM mydatabase.test_user;OPEN cur_test1;FETCH cur_test1 INTO max_pd_name,max_pd_num;SELECT max_pd_name, max_pd_num;CLOSE cur_test1;OPEN cur_max_id;FETCH cur_max_id INTO max_id;SELECT max_id;out_loop:LOOP-- 	 设置值set netxt_pation := max_pd_num + 100;SELECT netxt_pation, max_pd_name;set netxt_pation_name = CONCAT('p', REPLACE(max_pd_name, 'p', '') + 1);SELECT netxt_pation_name;SET @sql = CONCAT('ALTER TABLE test_userREORGANIZE PARTITION default_partINTO (PARTITION ', netxt_pation_name, ' VALUES LESS THAN (', netxt_pation, '), PARTITION default_part VALUES LESS THAN MAXVALUE);');PREPARE stmt FROM @sql;EXECUTE stmt;DEALLOCATE PREPARE stmt;IF netxt_pation > max_id THENLEAVE out_loop;END IF;END LOOP out_loop;CLOSE cur_max_id;END
//DELIMITER ;call add_partition();
# 创建定时任务# 查看定时任务
SELECT event_name, event_definition, interval_value, interval_field, status
FROM information_schema.EVENTS;# 开启
alter event run_event on completion preserve enable;
# 关闭
alter event run_event on completion preserve disable;drop event e_partition;CREATE EVENT e_partitionON SCHEDULE EVERY 1 HOURON COMPLETION PRESERVE ENABLEDO CALL p_partition_month();

更多推荐

MySQL 分区创建

本文发布于:2023-11-14 14:30:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1587616.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:分区   MySQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!