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)

相关推荐
vvvae12345 小时前
分布式数据库
数据库
雪域迷影5 小时前
PostgreSQL Docker Error – 5432: 地址已被占用
数据库·docker·postgresql
bug菌¹6 小时前
滚雪球学Oracle[4.2讲]:PL/SQL基础语法
数据库·oracle
逸巽散人6 小时前
SQL基础教程
数据库·sql·oracle
月空MoonSky6 小时前
Oracle中TRUNC()函数详解
数据库·sql·oracle
momo小菜pa6 小时前
【MySQL 06】表的增删查改
数据库·mysql
向上的车轮7 小时前
Django学习笔记二:数据库操作详解
数据库·django
编程老船长7 小时前
第26章 Java操作Mongodb实现数据持久化
数据库·后端·mongodb
全栈师8 小时前
SQL Server中关于个性化需求批量删除表的做法
数据库·oracle
Data 3178 小时前
Hive数仓操作(十七)
大数据·数据库·数据仓库·hive·hadoop