前俩天写了一个Mysql的自动创建分区,有的友友问Oracle下如何写,今天给大家整理一下oracle下的分区如何创建,也是直接干货,如果想深入学习的可以自己去百度查一些基本的资料,加深自己的印象。

那么正题开始,这回咱们还是建立范围分区,目前大部分公司用的Oracle 11g版本的(低版本的咱们后面有时间再说),11g是支持自动分区的,可以先看一下版本特性的介绍

oracle动态创建分区(11g下自动创建分区)(1)

11g还有很多新特性(Oracle 11G新特性(共36个)_newhappy2008的博客-CSDN博客)。感兴趣的话可以自己去翻阅一下,这里就不一一介绍了。

下面说两种平时用得最多的,一种是新表创建的时候直接创建分区,后续数据表中插入的数据会自动根据日期建立分区,不用手动操作。

代码如下:

-- 按天创建分区表

create table demo

(

ID NUMBER(32) not null,

create_date DATE

)

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

(partition p20220715 values less than(to_date('2022-07-15', 'yyyy-mm-dd')));

分区可以按照年月日去建,也可以按照数字范围去建,这个网上有很多的例子,可以去看看。

另一种就是已存在的表,且表中包含数据(如果表中数据很少,建议重新建一张新表后执行数据导入操作,但要人工核验数据一致性问题)。之前写过的暂时找不到了(其实是懒得重新再写一遍[奸笑]),不过在网上大家找到一篇比较实用的博客,大家可以去研究研究,按照项目情况来做选择。

传送门:oracle分区表的建立方法(包含已经存在的表要分区)_wanglilin的博客-CSDN博客_oracle已有表建分区

今天跑了趟医院,时间也不是很充裕,各位友友发现写的有问题,可以批评教育一下,大家共同学习[谢谢]。如果想要11g以下版本的话,我看看需要的人多不多,多的话我也可以勤快勤快自己写一遍整理一下,那么下次见,芜湖!!!

,