MYSQL定时创建表分区
MYSQL定时创建表分区
一.存储过程-表分区
-----------------------------------------------------------------
需求:
每月创建一个分区
分区名名称格式:p201201,p201202……
------------------------------------------
1 CREATE DEFINER = `root`@`%` PROCEDURE `Auto_Create_Partition`(IN `databaseName` varchar(50),IN `tableName` varchar(50)) 2 L_END:BEGIN 3 # 初始化变量 4 DECLARE MAX_PARTITION_DESCRIPTION VARCHAR(255) DEFAULT 0; 5 DECLARE P_DESCRIPTION VARCHAR(255) DEFAULT 0; 6 DECLARE i INT DEFAULT 1; 7 DECLARE ISEXIST_PARTITION VARCHAR(255) DEFAULT 0; 8 DECLARE next_p_name varchar(255) DEFAULT 0; 9 # 查询表分区 最近的一个月的分区(ORDER BY partition_description DESC LIMIT 1) 10 SELECT PARTITION_NAME INTO ISEXIST_PARTITION FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = databaseName AND TABLE_NAME = tableName ORDER BY partition_description DESC LIMIT 1 ; 11 12 IF ISEXIST_PARTITION <=> "" THEN 13 SELECT "Partition table not is exist" AS "*****ERROR*****"; 14 LEAVE L_END; 15 END IF; 16 17 # 根据时间设置要创建的分区的名称 18 SELECT concat('p',DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 1 MONTH),'%Y%m')) INTO next_p_name; 19 20 # 判断要创建的分区是否存在 21 IF ISEXIST_PARTITION = next_p_name THEN 22 SELECT concat("Partition(",next_p_name,") is exist") AS "*****INFO*****"; 23 LEAVE L_END; 24 END IF; 25 26 # 最近一个分区的设置的最大值(右边界) 27 SELECT partition_description INTO MAX_PARTITION_DESCRIPTION FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = databaseName AND TABLE_NAME = tableName ORDER BY partition_description DESC LIMIT 1; 28 29 IF MAX_PARTITION_DESCRIPTION <=> "" THEN 30 SELECT "Partition table is error" AS "*****ERROR*****"; 31 LEAVE L_END; 32 END IF; 33 34 # 创建新的分区 35 # 1.设置新的分区的右边界值 36 SET P_DESCRIPTION = TO_DAYS(DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 2 MONTH),'%Y%m01')); 37 # 2.拼接新增分区的SQL语句 38 SET @S=CONCAT('ALTER TABLE ',tableName,' ADD PARTITION (PARTITION ',next_p_name,' VALUES LESS THAN (',P_DESCRIPTION,'))'); 39 SELECT @S; 40 # 3.使用预处理执行SQL 41 # ------------------------------------------------------------------------------------------ 42 # 语法:语法 43 # PREPARE statement_name FROM sql_text /*定义*/ 44 # EXECUTE statement_name [USING variable [,variable...]] /*执行预处理语句*/ 45 # DEALLOCATE PREPARE statement_name /*删除定义*/ 46 # ------------------------------------------------------------------------------------------ 47 PREPARE stmt2 FROM @S; 48 EXECUTE stmt2; 49 DEALLOCATE PREPARE stmt2; 50 51 END L_END
-----------------------------------------------------------------------
二.定时事件创建
转载于:https://www.cnblogs.com/xpyan/p/4253703.html
MYSQL定时创建表分区相关推荐
- mysql 删除创建表分区_创建,增加,删除mysql表分区
1.测试添加分区和删除分区 ###添加删除range分区 (1)创建一个分区: CREATE TABLE titles ( emp_no INT NOT NULL, title ...
- mysql创建表分区详细介绍及示例
mysql创建表分区详细介绍及示例 1. 基本概念 1.1 什么是表分区? 1.2 表分区与分表的区别 1.3 表分区有什么好处? 1.4 分区表的限制因素 2. 如何判断当前MySQL是否支持分区? ...
- mysql创建表分区
文章目录 创建表分区 创建批量查询测试数据的存储过程 创建表分区 注意:创建分区个数最好是质数 DROP TABLE IF EXISTS `mg_zz_feature`; CREATE TABLE m ...
- R操作MySQL数据库创建表、删除表、增删改查(CRUD)
R操作MySQL数据库创建表.删除表.增删改查(CRUD) 关系数据中的数据是按照一定范式去存储的.当我们需要非常高级和复杂的Sql查询就可以使用关系数据库的数据资产.不光java和python可以容 ...
- mysql中创建表时提示 no database selected
用习惯了oracle或者sqlserver的界面形式 当用到mysql时创建表时往往就会忘记添加表空间这个前提. 在一个用户下面可建多个表空间 使用语句 create database your_d ...
- MySQL之创建表以及数据库增删改操作
MySQL之创建表 创建数据表 create table table_name (column_name column_type); 创建Author.Article.ArticleDetail三张表 ...
- python Django 连接mysql数据库创建表详细全过程
python Django 连接mysql数据库创建表详细全过程 1,在数据库中新建一个要连接的数据库(在cmd命令行里登录数据库进行创建创建) mysql -u root -p**+密码** cre ...
- MySQL数据库分表分区
防伪码:当你终于沉默,成熟才刚刚开始. 为什么要分表和分区? 我们的数据库数据越来越大,随之而来的是单个表中数据太多.以至于查询书读变慢,而且 由于表的锁机制导致应用操作也搜到严重影响,出现了数据库性 ...
- mysql技术分享--表分区实现
分区表 分区概念 分区功能并不是在存储引擎层完成的,因此不止有InnoDB存储引擎支持分区,常见的存储引擎MyISAM,NDB等都支持.但是也并不是所有存储引擎都支持,比如CSV,FEDERATED, ...
最新文章
- C++ 虚拟析构函数
- phpcms:八、show.html
- C# ASP.NET MVC 配置允许跨域访问
- awx文件_如何在Minishift上运行AWX
- 原来,我们的时间这样被科技巨头们瓜分(转)
- 使用C#调用Java带MIME附件WebService方法的初步设想
- Linux下的基本操作
- 剑指offer之扑克牌的顺子
- MMC-HVDC仿真模型,pscad柔性直流输电仿真mmc仿真模型,双端mmc模型,MMC为21电平NLM和均压控制
- python 生成式 生成器
- cad看图软件看图软件哪个好?
- 详解各种光学仪器成像原理
- win、linux环境下JAVA+GDAL部署,jar包启动,相关描述,问题解决
- JavaSE 知识学习
- js如何让段落首行缩进2个字符
- Importance Weighted Adversarial Nets for Partial Domain Adaptation学习笔记
- git commit 遇到 “#modified: xxx/xxx (modified content)”问题的解决
- OSChina 周三乱弹 ——新技能get 如何机智的关注大胸妹子。
- LeetCode报错:Line 923: Char 9: runtime error: reference binding to null pointer of type ‘std::__cxx11:
- 用ror开发的无忧换书网,大家看看给点意见