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 清空分区表单个分区数据的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu系统,安装的时候没有分区,现想把/home挂到单个分区,求解(fdisk,GParted都试了,详情见补充)