1.创建分区表:

CREATE TABLE customer_login_log(
customer_id INT UNSIGNED NOT NULL,
login_time DATETIME NOT NULL,
login_ip INT UNSIGNED NOT NULL,
login_type TINYINT NOT NULL,
PRIMARY KEY (`customer_id`,`login_time`)
)ENGINE =INNODB
PARTITION BY RANGE(YEAR(login_time))(
partition p2007 values less than (2008),
partition p2008 values less than (2009),
partition p2009 values less than (2010),
partition p2010 values less than (2011),
partition p2011 values less than (2012),
partition p2012 values less than (2013),
partition p2013 values less than (2014),
partition p2014 values less than (2015),
partition p2015 values less than (2016),
partition p2016 values less than (2017),
partition p2017 values less than (2018),
partition p2018 values less than (2019),
partition p2019 values less than (2020),
partition p2020 values less than (2021),
partition p2021 values less than (2022)
);

2.插入数据:

INSERT INTO customer_login_log(customer_id,login_time,login_ip,login_type)
VALUES
(1001,'2017-01-25',0,1),
(1002,'2017-07-25',0,1),
(1003,'2018-01-25',0,1),
(1004,'2018-03-25',0,1),
(1005,'2016-01-25',0,1),
(1006,'2021-01-25',0,1);

3.查询数据:

select * from customer_login_log

4.查询分区表的分布情况:

SELECT table_name,partition_name,partition_description,table_rows
FROM information_schema.PARTITIONS
WHERE table_name='customer_login_log';


5.插入不存在的分区日期,报错:

INSERT INTO customer_login_log(customer_id,login_time,login_ip,login_type)
VALUES
(1007,'2022-07-25',0,1),
(1008,'2023-01-25',0,1),
(1009,'2024-03-25',0,1),
(1010,'2025-01-25',0,1); 

6.手工添加分区:

ALTER TABLE customer_login_log ADD PARTITION (PARTITION p2022 VALUES LESS THAN(2023));
ALTER TABLE customer_login_log ADD PARTITION (PARTITION p2023 VALUES LESS THAN(2024));
ALTER TABLE customer_login_log ADD PARTITION (PARTITION p2024 VALUES LESS THAN(2025));
ALTER TABLE customer_login_log ADD PARTITION (PARTITION p2025 VALUES LESS THAN(2026)); 

7.再次插入正常:

INSERT INTO customer_login_log(customer_id,login_time,login_ip,login_type)
VALUES
(1007,'2022-07-25',0,1),
(1008,'2023-01-25',0,1),
(1009,'2024-03-25',0,1),
(1010,'2025-01-25',0,1); 

8.查询建表语句:

show create table customer_login_log;

CREATE TABLE `customer_login_log` (
  `customer_id` int(10) unsigned NOT NULL,
  `login_time` datetime NOT NULL,
  `login_ip` int(10) unsigned NOT NULL,
  `login_type` tinyint(4) NOT NULL,
  PRIMARY KEY (`customer_id`,`login_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50100 PARTITION BY RANGE (YEAR(login_time))
(PARTITION p2007 VALUES LESS THAN (2008) ENGINE = InnoDB,
 PARTITION p2008 VALUES LESS THAN (2009) ENGINE = InnoDB,
 PARTITION p2009 VALUES LESS THAN (2010) ENGINE = InnoDB,
 PARTITION p2010 VALUES LESS THAN (2011) ENGINE = InnoDB,
 PARTITION p2011 VALUES LESS THAN (2012) ENGINE = InnoDB,
 PARTITION p2012 VALUES LESS THAN (2013) ENGINE = InnoDB,
 PARTITION p2013 VALUES LESS THAN (2014) ENGINE = InnoDB,
 PARTITION p2014 VALUES LESS THAN (2015) ENGINE = InnoDB,
 PARTITION p2015 VALUES LESS THAN (2016) ENGINE = InnoDB,
 PARTITION p2016 VALUES LESS THAN (2017) ENGINE = InnoDB,
 PARTITION p2017 VALUES LESS THAN (2018) ENGINE = InnoDB,
 PARTITION p2018 VALUES LESS THAN (2019) ENGINE = InnoDB,
 PARTITION p2019 VALUES LESS THAN (2020) ENGINE = InnoDB,
 PARTITION p2020 VALUES LESS THAN (2021) ENGINE = InnoDB,
 PARTITION p2021 VALUES LESS THAN (2022) ENGINE = InnoDB,
 PARTITION p2022 VALUES LESS THAN (2023) ENGINE = InnoDB,
 PARTITION p2023 VALUES LESS THAN (2024) ENGINE = InnoDB,
 PARTITION p2024 VALUES LESS THAN (2025) ENGINE = InnoDB,
 PARTITION p2025 VALUES LESS THAN (2026) ENGINE = InnoDB) ;

9.注意事项:
注:在这个表中没有建立MAXVIEW分区是为了维护方便,为了避免插入数据到RANGE分区失败,要做修改并添加分区的计划任务。

10.删除分区的语句(注:会将分区中的数据一并删除):

ALTER TABLE customer_login_log DROP PARTITION P2024; 

11.删除分区实战

删除前查询

删除分区

删除之后查询

再次查看p2025分区和数据已经被彻底删除。

mysql按年创建分区表,增加分区表,删除分区表,实战练习相关推荐

  1. 【Python笔记】列表基础操作 :创建,增加、删除、查询。附加:练习题。用简单代码解释。

    Python:列表基础操作 创建,增加.删除.查询.附加练习题.用简单代码解释. 目录 Python:列表基础操作 演示环境 第一部分:列表(list) 1. 创建空列表 2. 创建只有默认值的列表 ...

  2. mysql用户的创建、修改、删除与密码修改

    文章目录 1 用户分类 2 用户特点 3 用户登录 4 用户管理 4.1 创建用户 4.2 修改用户 4.3 删除用户 4.4 修改用户密码 4.4.1 修改当前用户的密码 4.4.2 修改其他用户的 ...

  3. hive创建mysql表,hiveMysql创建、修改、删除字段/表

    本文围绕以下框架,对Hive及Mysql中,常用的字段/表处理语句进行整理汇总. 1. 创建表 (1)Hive (2)Mysql 2. 字段重命名 (1)Hive -- 改变列名/类型/位置/注释 A ...

  4. MySQL入门之创建、修改、删除、查看数据库

    ---------------------------------------------------------------------------------------------------- ...

  5. 集合及其常见操作,创建,增加,删除,查找

    集合 集合里的数据没有重复(去重)没有顺序(因此集合不支持下标) 1.创建集合使用{}和set(),但是如果要创建集合只能使用set(),因为{}用来创建空字典 set1={10,20,30,40,5 ...

  6. [MySQL]表的创建、修改与删除

    文章目录 1. MySQL中的数据类型 1.1 常用的数据类型 2. 创建表 2.1 方式一:创建空的新表 2.1.1 新表的创建 2.1.2 查看表结构 2.1.3 查询创建表的语句 2.2 方式二 ...

  7. Mysql中表的创建、修改与删除

    文章目录 1.1 直接创建表 1.2 从另一张表复制表结构创建表 1.3 从另一张表的查询结果创建 2.1 修改表 3.1 删除表 1.1 直接创建表 CREATE TABLE [IF NOT EXI ...

  8. MySQL视图的创建、修改与删除

    SQL CREATE VIEW 语句 什么是视图? 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表. 视图包含行和列,就像一个真实的表.视图中的字段就是来自一个或多个数据库中的真实的表中 ...

  9. ef.extensions mysql_EFcore 使用 EFCore.BulkExtensions(不支持mysql)或 EntityFramework-Plus 批量增加、删除、修改...

    EFCore.BulkExtensions,EntityFramework-Plus  都是Microsoft推荐的EFcore扩展 . 可以通过nuget安装 一.EFCore.BulkExtens ...

  10. PHP+MySql+PDO实现简单增加、删除、修改、查询

    最近学习中要使用PHP+MySql实现表单的增加.删除.修改.查询,看了很多简单案例后,写了一个简单的表单,下面请看代码,有错误的地方希望大佬们指教! 数据库名itcast , 表名emp_info ...

最新文章

  1. cmake使用教程(十一)-使用cpack打包源码并编写自动化脚本上传到仓库
  2. 韩信竟是数学大师?中国古代数学启发计算机加密算法
  3. 简述回源原理和CDN常见多级缓存
  4. css3点击会移动到点,CSS3过渡点击事件
  5. 详解malloc,calloc,realloc原理及其模拟实现
  6. oracle ora 00910,NVARCHAR2字段超长问题:ORA-00910: specified length too long for its datatype
  7. 【PHP】使用PHP抓取Bing每日图像并为己所用
  8. Redis的主从复制和 哨兵模式
  9. antd vue form表单 子组件调用父组件的方法没反应_前几天推了Vue,今天给React疯狂打call...
  10. 《代码大全》阅读笔记01
  11. Yii源码解读 - 事件
  12. layui树形表格treetable
  13. 新浪微博开放平台使用
  14. Spring Boot 定制个性 banner
  15. HTML5教程书籍电子版30本合集
  16. Python中文社区开源项目计划:ImagePy
  17. 文字直接转语音,一直都这么简单!
  18. 猴子年华、教你如何关闭微信朋友圈广告
  19. lua与php通用异或算法,php使用异或实现的加密解密实例
  20. mysql下载安装(简单)

热门文章

  1. Xshell如何操作linux
  2. linux root权限_Linux 提权技术
  3. 写springMVC DEMO时,jsp页面显示jsp代码的解决方法
  4. java程序在内存中的存储分配
  5. html给图片设置编剧,漫画简明编剧教程【4】如何设计角色
  6. 后盾网php多少钱_亿多星全脑开发招代理多少钱@山东聊城网
  7. OpenShift 4 - 多云管理(2) - 部署应用
  8. 用于指纹验证的C#框架
  9. mr图像翻转的原因_MR成像技术讲解
  10. cocos2d-x 调用java_cocos2d-x中通过Jni实现Java与C++的互相调用