Oracle 创建自增表分区之按月、按天自增表分区

Oracle 创建自增表分区之按月、按天自增表分区

    • 一、创建按`月`自增分区表
      • 步骤一:创建按月自增表
      • 步骤二:查看表现有分区
      • 步骤三:使用匿名代码块按月插入数据
      • 步骤四:查看表是否按月进行分区
      • 步骤五:查看表分区内的数据情况
    • 二、创建按`天`自增分区表
      • 步骤一:创建按天自增表
      • 步骤二:查看表现有分区
      • 步骤三:使用匿名代码块按天插入数据
      • 步骤四:查看表是否按天进行分区
      • 步骤五:查看表分区内的数据情况

一、创建按自增分区表

提示:接下来将按照执行步骤进行介绍;
注:在进行表分区情况查询时,表的名称必须要大写

步骤一:创建按月自增表

create table month_partition_zz_table  --自增表明
(id integer,month_time date) --表字段
partition by range(month_time) --表分区字段
interval (numtoyminterval(1,'month')) --按月自增分区
(
partition p_month_1 values less than (to_date('2023-01-01','yyyy-mm-dd')) --第一个分区表
);

步骤二:查看表现有分区

select * 
from user_tab_partitions --系统分区记录表
where table_name=upper('month_partition_zz_table');

Oracle 创建自增表分区之按月、按天自增表分区_第1张图片

步骤三:使用匿名代码块按月插入数据

begin
  for i in 1..12 loop
      insert into month_partition_zz_table values(i,add_months(to_date('2023-01-01','yyyy-mm-dd'),i-1));
  end loop;
  commit;
end;

查看已经插入的表数据;

select * from month_partition_zz_table;  --查看表内容
truncate table month_partition_zz_table; --清空表
drop table month_partition_zz_table;  --删除表

Oracle 创建自增表分区之按月、按天自增表分区_第2张图片

步骤四:查看表是否按月进行分区

select * 
from user_tab_partitions 
where table_name=upper('month_partition_zz_table');

Oracle 创建自增表分区之按月、按天自增表分区_第3张图片

步骤五:查看表分区内的数据情况

select * From month_partition_zz_table partition(SYS_P76);
select * From month_partition_zz_table partition(SYS_P87);

Oracle 创建自增表分区之按月、按天自增表分区_第4张图片

二、创建按自增分区表

提示:接下来将按照执行步骤进行介绍;

步骤一:创建按天自增表

create table day_partition_zz_table --自增表名
(id number,day_time date) --表中字段
partition by range(day_time)  --分区字段
interval (numtodsinterval(1,'day'))  --自增天
(
partition p_day_1 values less than (to_date('2023-09-08','yyyy-mm-dd')) --第一天分区表
);

步骤二:查看表现有分区

select * 
from user_tab_partitions 
where table_name=upper('day_partition_zz_table');

Oracle 创建自增表分区之按月、按天自增表分区_第5张图片

步骤三:使用匿名代码块按天插入数据

begin
  for i in 0..10 loop
     insert into day_partition_zz_table values(i,trunc(to_date('2023-09-08','yyyy-mm-dd')+i));
  end loop;
  commit;
end;

查看已经插入的表数据;

select * from day_partition_zz_table;  --查看表内容
truncate table day_partition_zz_table; --清空表
drop table day_partition_zz_table;  --删除表

Oracle 创建自增表分区之按月、按天自增表分区_第6张图片

步骤四:查看表是否按天进行分区

select * 
from user_tab_partitions 
where table_name=upper('month_partition_zz_table');

Oracle 创建自增表分区之按月、按天自增表分区_第7张图片

步骤五:查看表分区内的数据情况

select * From day_partition_zz_table partition(P_DAY_1); --无数据
select * From day_partition_zz_table partition(SYS_P88);  --2023/9/8
select * From day_partition_zz_table partition(SYS_P98); --2023/9/18

Oracle 创建自增表分区之按月、按天自增表分区_第8张图片

你可能感兴趣的:(Oracle,oracle,数据库)