Oracle按日周月年自动分区

目录

1、分区键

2、初始分区

3、周月年自动分区

4、按日自动分区表建表语句


与普通建表语句相比,分区表多了一些分区信息;

1、分区键

以下面销售明细表为例,以data_dt为分区键,NUMTODSINTERVAL(1, 'day') 按日分区

PARTITION BY RANGE (data_dt) INTERVAL (NUMTODSINTERVAL(1, 'day'))

2、初始分区

设置part_t01为初始的分区,可以根据实际需求设置初始分区的边界。

(PARTITION part_t01 VALUES LESS THAN(to_date('2020-01-01', 'yyyy-mm-dd')))

3、周月年自动分区

按其他周月年分区需要 替换 标黄部分。(前缀英文不一样注意区分)

PARTITION BY RANGE (data_dt) INTERVAL (NUMTODSINTERVAL(1, 'day'))

--按日分区 NUMTODSINTERVAL(1, 'day')

--按周分区 NUMTODSINTERVAL (7, 'day')

--按月分区 NUMTOYMINTERVAL(1, 'month')

--按年分区 NUMTOYMINTERVAL(1, 'year')

4、按日自动分区表建表语句

sql 复制代码
-- Create table
CREATE TABLE sales_info
(
  data_dt DATE,
  prod_id     VARCHAR2(50),
  prod_num VARCHAR2(50),
  prod_nm   VARCHAR2(100),
  prod_color VARCHAR2(20),
  prod_size VARCHAR2(10),
  quantity_sold   INTEGER,
  data_tm  TIMESTAMP
)
PARTITION BY RANGE (data_dt) INTERVAL (NUMTODSINTERVAL(1, 'day'))
(partition part_t01 values less than(to_date('2020-01-01', 'yyyy-mm-dd')));
;
--按日分区 NUMTODSINTERVAL(1, 'day')
--按周分区 NUMTODSINTERVAL (7, 'day')
--按月分区 NUMTOYMINTERVAL(1, 'month')
--按年分区 NUMTOYMINTERVAL(1, 'year') 

【注】

NUMTODSINTERVAL 常用单位为('day','hour','minute','second')

NUMTOYMINTERVAL 常用单位为('year','month')

参考:ORACLE创建按日期自动分区表 - 1只在路上的程序猿 - 博客园 (cnblogs.com)

相关推荐
晚风_END3 小时前
Linux|操作系统|最新版openzfs编译记录
linux·运维·服务器·数据库·spring·中间件·个人开发
dLYG DUMS3 小时前
DBeaver连接本地MySQL、创建数据库表的基础操作
数据库·mysql
苍煜4 小时前
MySQL分库分表和ES到底怎么选?
数据库·mysql·elasticsearch
茉莉玫瑰花茶4 小时前
Qt 信号与槽 [ 1 ]
开发语言·数据库·qt
czlczl200209255 小时前
松散索引扫描/跳跃索引扫描
数据库·mysql·性能优化
星马梦缘6 小时前
数据库作战记录 实验7、8
数据库·sql·oracle
安逸sgr7 小时前
Hermes Agent + Obsidian 打造第二大脑(六):分层记忆系统的设计逻辑——L0/L1/L2/L3 四层记忆详解
数据库·agent·知识库·hermes·hermesagent
苍煜7 小时前
一篇讲懂分库分表:概念、spirngboot实战
数据库·oracle
梦想画家7 小时前
PostgreSQL 物化视图实战:从数据固化到智能刷新的全链路指南
数据库·postgresql·物化视图
weoptions7 小时前
简单sql注入中如何通过简单语句判断注入类型&注入方法
数据库·sql