按日期分区的数据表,我们希望每年、每个月甚至每天动态创建一个分区,这种情况就需要用事件和存储过程来实现动态添加分区,下面的存储过程是按年分区增加当年分区的过程:

BEGIN

#Routine body goes here...

DECLARE currentTime date DEFAULT CURDATE();

DECLARE partName VARCHAR(12);

DECLARE i_part_name VARCHAR(12);

DECLARE i_flag INT DEFAULT 0;

DECLARE currentYear INT DEFAULT 0;

#指针遍历分区名,避免定义重复分区名

DECLARE cur_partition CURSOR for select partition_name part from information_schema.PARTITIONS

where TABLE_SCHEMA = schema() and TABLE_NAME='test';

#此句必须添加,不然会出现死循环,含义是当遍历指针为空后赋值此变量为NULL

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET i_part_name = NULL;

#定义欲创建的分区名,用于遍历匹配已有分区名

SET partName=CONCAT('part_',YEAR(currentTime));

OPEN cur_partition;

FETCH cur_partition into i_part_name;

WHILE (i_part_name IS NOT NULL)

DO

IF i_part_name = partName THEN

SET i_flag = 1;

END IF;

FETCH cur_partition into i_part_name;

END WHILE;

CLOSE cur_partition;

#如果没有创建分区则创建当前年份的分区

IF i_flag = 0 THEN

SET currentYear=YEAR(currentTime) + 1;

SET @v_add_s = CONCAT('ALTER TABLE test ADD PARTITION (PARTITION ',partName,' VALUES LESS THAN (',currentYear,'))');

prepare stmt from @v_add_s;

execute stmt;

deallocate prepare stmt;

END IF;

END

mysql动态分区_MySQL动态创建分区相关推荐

  1. maxvalue mysql自动分区_mysql的partition分区

    前言:当一个表里面存储的数据特别多的时候,比如单个.myd数据都已经达到10G了的话,必然导致读取的效率很低,这个时候我们可以采用把数据分到几张表里面来解决问题. 方式一:通过业务逻辑根据数据的大小通 ...

  2. mysql如何进行分区_mysql如何进行分区_mysql分区有哪些方法

    MySQL 可应用于多种语言,包括 PERL, C, C++, JAVA 和 PHP. 在这些语言中,MySQL 在 PHP 的 web 开发中是应用最广泛.大家知道mysql如何分区的吗?下面由学习 ...

  3. mysql横向分区_MySQL 横向表分区之RANGE分区小结

    MySQL 横向表分区之RANGE分区小结 by:授客 QQ:1033553122 目录 简介 mysql表分区--RANGE分区,属于横向分区.举例说,假如有100条数据,分成十份,前10条数据放到 ...

  4. mysql的hash分区_MySQL中的分区(五)HASH分区

    HASH分区主要用来分散热点读,取保数据在预先确定个数的分区中尽可能的平均分布.对一个表执行HASH分区时,MySQL会对分区键应用一个散列函数,一次确定数据应该放在哪一个分区中. MySQL分区支持 ...

  5. 添加mysql 函数库_mysql函数创建

    如何使用MySQL提升权限 前不久网上公开了一个MySQL Func的漏洞,讲的是使用MySQL创建一个自定义的函数,然后通过这个函数来攻击服务器.最早看到相关的报道是在o-otik上,但是公布的是针 ...

  6. mysql按章_mysql按时间范围分区

    1.问题描述 mysql的开发人员经常按时间范围分区不知道时间上怎么写,笔者把总结归纳下来,能帮助自已和分享成果. 2.解决问题 mysql对时间范围分区,可以是按年,按月,按天,按分,按秒,如下案例 ...

  7. mysql 字符串解析_MySQL 动态字符串处理详解

    MySQL中,常常会看到一些关于动态字符串的处理,列如:DYNAMIC_STRING. 为了记录动态字符串的实际长度,缓冲区的最大长度,以及每次字符串需要调整时,及时分配新的内存,以及调整长度.MyS ...

  8. mysql 动态游标_mysql动态游标与mysql存储过程游标(示例)

    -- 建立测试表和数据 create table webuser (username varchar(10)); insert into webuser values ('a1'),('a2'),(' ...

  9. mysql如何动态查询_Mysql动态查询

    if条件查询 格式: 添加到sql的语句 where标签 简化SQL语句中WHERE条件判断 智能处理and和or 如果使用几个if条件标签,如果第一个条件不成立,那么该sql语句就不成立了. 把所有 ...

最新文章

  1. Zynq7000术语PL,PS,APU,SCU介绍
  2. 001_JavaScript简介
  3. 象SaaS一样用亚马逊Kinesis Analytics做大数据分析
  4. 【框架】[Spring]XML配置实现AOP拦截-切点:JdkRegexpMethodPointcut
  5. mySQL初学者一些最常用的命令行
  6. 《A Seat at the Table》作者访谈录
  7. vijos1237-隐形的翅膀【离散化】
  8. 使你的C/C++代码支持Unicode
  9. 【debug】moduleNotFoundError:No module named 'exceptions'
  10. Python学习笔记:集合(set)
  11. learn go ifelse
  12. js实现侧边栏信息展示效果
  13. 检验学习笔记-寄生虫
  14. 【图像边缘检测】基于matlab蚁群聚类图像边缘检测【含Matlab源码 728期】
  15. Xshell 如何导入 PuTTYgen 生成的 key
  16. 三足鼎立 – Mac 输入法横向对比
  17. 有关Intel主板驱动静默安装的一个坑
  18. 好分数班级等级C_2020高中分数线(广州|深圳|天津|广州|南宁|泉州|龙岩|武汉|沈阳|青岛|汉中|长春|四平|北京等)...
  19. 把steam上下载的GTA5转移到Epic中,免除Epic再次下载GTA5的方法
  20. Banner无限轮播

热门文章

  1. 机器学习笔记:梯度下降
  2. EXCEL中VLOOKUP做精确匹配匹配后日期显示为00-Jan-00,教你如何解决
  3. 完全用链表实现的贪吃蛇
  4. 怎么查看docker是否启动_怎么查看自己的手机是否支持北斗导航系统
  5. 【Mysql】_1在centos7虚拟机上完成Mysql环境部署
  6. 列数较多的csv文件导入mysql数据库(过程及问题记录)
  7. Android开发把项目打包成apk
  8. 跨平台传输中使用base64来保证非ascii码字符串的完整性
  9. 搭建属于自己的wiki
  10. java实现插入排序算法 附单元测试源码