MySQL 清空分区表单个分区数据

Posted Demonson

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 清空分区表单个分区数据相关的知识,希望对你有一定的参考价值。

1.单个分区清空

ALTER TABLE xxx TRUNCATE PARTITION p20220104;

2.编辑存储过程

功能:指定清空之前某一天的数据,直接调用存储过程实现

DELIMITER $$

USE `managerdb`$$

DROP PROCEDURE IF EXISTS `partition_trunc`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `partition_trunc`(p_schema_name VARCHAR(64), p_table_name VARCHAR(64), p_trunc_before_date INT)
BEGIN
/*
p_trunc_before_date 清空分区表第N天的数据
*/      
        DECLARE trunc_part_name VARCHAR(16);
		
        SET trunc_part_name = CONCAT('p',DATE_FORMAT(DATE_SUB(CURDATE(),INTERVAL p_trunc_before_date DAY),'%Y%m%d'));
        SET @trunc_partitions = CONCAT("ALTER TABLE ", p_schema_name, ".", p_table_name, " TRUNCATE PARTITION ",trunc_part_name); -- 拼执行语句
		
	SELECT @trunc_partitions; -- 打印删除详情
        
         PREPARE STMT FROM @trunc_partitions;
                
         EXECUTE STMT;
                
         DEALLOCATE PREPARE STMT;
                
        
        
END$$

DELIMITER ;

实例:

call managerdb.partition_trunc('test','t_001',1);

清空test.t_001一天前的单个分区数据

以上是关于MySQL 清空分区表单个分区数据的主要内容,如果未能解决你的问题,请参考以下文章

怎么循环创建mysql表分区和清空表分区

ubuntu系统,安装的时候没有分区,现想把/home挂到单个分区,求解(fdisk,GParted都试了,详情见补充)

细聊MySQL的分区功能

mysql之表分区

mysql表分区使用及详细介绍

MySQL分区