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)

相关推荐
不羁。。1 小时前
【撸靶笔记】第八关:GET - Blind - Boolian Based - Single Quotes
数据库·sql·mybatis
AwhiteV2 小时前
利用图数据库高效解决 Text2sql 任务中表结构复杂时占用过多大模型上下文的问题
数据库·人工智能·自然语言处理·oracle·大模型·text2sql
m0_595199852 小时前
Redis(以Django为例,含具体操作步骤)
数据库·redis·缓存
爱尚你19932 小时前
MySQL 三大日志:redo log、undo log、binlog 详解
数据库·mysql
小猿姐4 小时前
KubeBlocks AI:AI时代的云原生数据库运维探索
数据库·人工智能·云原生·kubeblocks
NocoBase5 小时前
10 个开源工具,快速构建数据应用
数据库·低代码·开源
麻辣清汤6 小时前
结合BI多维度异常分析(日期-> 商家/渠道->日期(商家/渠道))
数据库·python·sql·finebi
Kan先生7 小时前
对象存储解决方案:MinIO 的架构与代码实战
数据库·python
超级迅猛龙7 小时前
保姆级Debezium抽取SQL Server同步kafka
数据库·hadoop·mysql·sqlserver·kafka·linq·cdc
杨过过儿8 小时前
【Task02】:四步构建简单rag(第一章3节)
android·java·数据库