Mysql按天进行表分区

本文介绍了如何在MySQL中按天对表进行分区,以`income`表为例,详细说明了表结构设计,强调了主键`id`和`int_date`的重要性,并提到了每日执行的存储过程。
摘要由CSDN通过智能技术生成

1.数据库结构:表名:income

id   income int_date

主键:id,int_date。因为要按int_date分区,所以必须要加入该列主键

存储过程:

DELIMITER $$
USE newdatabase$$

DROP PROCEDURE
IF EXISTS `create_Partition_income`$$

CREATE PROCEDURE `create_Partition_income`()label :
BEGIN
	/*分区要提前,要不然数据插入会出错,另外分区字段要设置为主键否则会出错。最好设置每日晚上的23点左右,Vlaue值in 只能用list分区Rang是less than*/
	SELECT
		REPLACE(
			partition_name,
			'incomep',
			''
		)INTO @PName
	FROM
		INFORMATION_SCHEMA. PARTITIONS
	WHERE
		table_name = 'income'
	ORDER BY
		partition_ordinal_position DESC
	LIMIT 1 ;
	IF ISNULL(@PName)THEN
		/*从未做过表分区时,自动做表分区*/
  SELECT
				MIN(int_date)INTO @minIntDate
			FROM
				income ;
			SET @maxIntDate = CAST(
				DATE_FORMAT(now(), '%Y%m%d')AS UNSIGNED INTEGER
			);

  /*	select @minIntDate,@maxIntDate ;*/
			SET @partStr='';
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值