间隔分区表(DM8:达梦数据库)

DM8:达梦数据库 - 间隔分区表

  • 环境介绍
  • [1 按 年 - 间隔分区表](#1 按 年 - 间隔分区表)
  • [2 按 月 - 间隔分区](#2 按 月 - 间隔分区)
  • [3 按 日 - 间隔分区](#3 按 日 - 间隔分区)
  • [4 按 数值 - 间隔分区表](#4 按 数值 - 间隔分区表)
  • [5 达梦数据库学习使用列表](#5 达梦数据库学习使用列表)

环境介绍

  • 间隔分区表使用说明:
    1. 仅支持一级范围分区创建间隔分区。
    1. 只能有一个分区列,且分区列类型为日期或数值。
    1. 对间隔分区进行 SPLIT,只能在间隔范围内进行操作。
    1. 被 SPLIT/MERGE 的分区,其左侧分区不再进行自动创建。
    1. 不相邻的间隔的分区,不能 MERGE。
    1. 表定义不能包含 MAXVALUE 分区。
    1. 不允许新增分区。
    1. 不能删除起始间隔分区。
    1. 间隔分区表定义语句显示到起始间隔分区为止。
    1. 自动生成的间隔分区,均不包含边界值。
    1. MPP 下不支持间隔分区表。

1 按 年 - 间隔分区表

sql 复制代码
--间隔分区-- 时间间隔函数
-- 年,月 转换一个指定的 DEC 类型值到 INTERVAL YEAR TO MONTH
SELECT NUMTOYMINTERVAL(N,INTERVAL_UNIT);
SELECT SYSDATE+NUMTOYMINTERVAL(1,'YEAR');--按年 间隔分区

CREATE TABLE TYEAR(ID INT,NAME VARCHAR(20),BIR DATE)
PARTITION BY RANGE(BIR) 
	INTERVAL(NUMTOYMINTERVAL(1,'YEAR'))(
	PARTITION P1990 VALUES LESS THAN (TO_DATE('1991-01-01','YYYY-MM-DD')),
	PARTITION P1991 VALUES LESS THAN (TO_DATE('1992-01-01','YYYY-MM-DD')));
	
	INSERT INTO TYEAR VALUES(1,'AAAAA','1990-03-01');
	COMMIT;	--存入P1990分区表中
	INSERT INTO TYEAR VALUES(2,'BBBBB','1995-03-01');
	COMMIT;  --存入自动新建分区表中

2 按 月 - 间隔分区

sql 复制代码
SELECT SYSDATE+NUMTOYMINTERVAL(1,'MONTH');--按月 间隔分区
CREATE TABLE TMONTH(ID INT,NAME VARCHAR(20),BIR DATE)
PARTITION BY RANGE(BIR) 
	INTERVAL(NUMTOYMINTERVAL(1,'MONTH'))(
	PARTITION P9101 VALUES LESS THAN (TO_DATE('1991-02-01','YYYY-MM-DD')),
	PARTITION P9102 VALUES LESS THAN (TO_DATE('1991-03-01','YYYY-MM-DD')));
	
	INSERT INTO TMONTH VALUES(1,'AAAAA','1991-01-01');
	COMMIT;	--存入P9101分区表中
	INSERT INTO TMONTH VALUES(2,'BBBBB','1991-05-01');
	COMMIT;  --存入自动新建分区表中

3 按 日 - 间隔分区

sql 复制代码
SELECT NUMTODSINTERVAL(N,INTERVAL_UNIT);
SELECT SYSDATE+NUMTODSINTERVAL(1,'DAY'); --按 日 间隔分区
-- 日 转换一个指定的 DEC 类型到 INTERVAL DAY TO SECOND
SELECT NUMTODSINTERVAL(N,INTERVAL_UNIT);
SELECT SYSDATE+NUMTODSINTERVAL(1,'DAY');

CREATE TABLE TDAY(ID INT,NAME VARCHAR(20),BIR TIMESTAMP)
PARTITION BY RANGE(BIR) 
	INTERVAL(NUMTODSINTERVAL(1,'DAY'))(
	PARTITION P910101 VALUES LESS THAN (TO_DATE('1991-01-02 00:00:00','YYYY-MM-DD HH24:MI:SS')),
	PARTITION P910102 VALUES LESS THAN (TO_DATE('1991-01-03 00:00:00','YYYY-MM-DD HH24:MI:SS')));
	
	INSERT INTO TDAY VALUES(1,'AAAAA','1991-01-01 00:00:00');
	COMMIT;	--存入P910101分区表中
	INSERT INTO TDAY VALUES(2,'BBBBB','1991-01-05 00:00:00');
	COMMIT;  --存入自动新建分区表中

4 按 数值 - 间隔分区表

sql 复制代码
--间隔分区表--数值间隔
CREATE TABLE T_R11
(EMPLOYEE_ID INT,
EMPLOYEE_NAME VARCHAR(20),
BIR DATETIME)
PARTITION BY RANGE(EMPLOYEE_ID)
INTERVAL(10)
(PARTITION P1990 VALUES LESS THAN(10));

insert into SYSDBA.T_R11 VALUES(9,'AAA','1990-01-01');
COMMIT;  --存入P1990分区表中
insert into SYSDBA.T_R11 VALUES(10,'AAA','1990-01-01');
COMMIT;	--存入自动新建的分区表中
insert into SYSDBA.T_R11 VALUES(20,'AAA','1990-01-01');
COMMIT;	--存入再次新建的分区表中

5 达梦数据库学习使用列表

相关推荐
l125865几秒前
# RAG噪声知识库治理:一致性与可信度的四层防线设计
数据库·人工智能·python·自然语言处理·langchain
聚美智数1 小时前
图片水印-图片剪裁-图片缩放API接口介绍
java·服务器·数据库
JavaPub-rodert1 小时前
Go 后台如何同时兼容 MySQL、PostgreSQL、SQLite 和 SQL Server?从 ShiyuAdmin 看 GORM 多数据库适配
数据库·mysql·postgresql·golang·javapub·王仕宇
瀚高PG实验室2 小时前
SQL优化案例:存储过程、复杂SQL拆成简单SQL提升整体性能
数据库·sql·postgresql·瀚高数据库
Wang's Blog2 小时前
PostgreSQL笔记36:执行计划基础解读与优化器成本模型
数据库·笔记·postgresql
Wang's Blog2 小时前
PostgreSQL笔记35:索引常见问题诊断与解决方案全景解析
数据库·笔记·postgresql
LayZhangStrive2 小时前
后端通识 - 后端开发职位接触的开发流程
数据库·prd·技术方案·库表设计·后端开发流程
爱吃火鸡面呀3 小时前
MySQL 查询与函数详解:从基础条件筛选到高级字符处理
数据库·mysql
奥莱维3 小时前
KNX酒店方案_KNX专用线与高端酒店技术逻辑
java·服务器·前端·数据库
牛大兵3 小时前
机顶盒获取局域网已经使用IP,开放的端口号,扫描摄像头,NAS,共享主机等开机自启局域网全量扫描工具
数据库·网络协议·tcp/ip