简介PG库分区表及与Oracle库对比

本文介绍了PG库分区表的创建、查询和删除方法,并与Oracle的分区表进行了对比。在PG中,分区本质上是独立的表,而Oracle的分区是表的特性。PG允许灵活的操作,但不同表的分区名不能相同,而Oracle可以。
摘要由CSDN通过智能技术生成

最近公司需要将oralce数据库替换掉,作为造型研究,去研究了一下PG库,作为研究成果,以文章形式固化下来。

由于本地电脑上安装的PG库版本为10.20,所以有些功能(比如默认分区)无法测试。

一、PG库分区表简介

一、PG的分区表创建

  1. 创建一张表,并指定分区字段,如果不指定,则默认为非分区字段

我们创建一张有两层分区的表,但此时建表时,指定第一级分区为partition_name

CREATE TABLE partition_test_table (
    partition_name VARCHAR ( 20 ),
    subpartitoin_name NUMERIC,
    segment1 VARCHAR ( 20 ),
    segment2 VARCHAR ( 20 ),
    segment3 VARCHAR ( 20 ),
    segment4 VARCHAR ( 20 ),
    segment5 VARCHAR ( 20 ) 
) PARTITION BY list ( partition_name );
  1. 开始创建分区及指定二级分区字段

注意,如创建表一样,此时需要用partition by list 来指定二级分区,相当于为分区表创建分区。

create table p_a001 partition of partition_test_table for values in ('a001') partition by list(subpartitoin_name);

此时发现,创建分区的语句居然是create table。所以此时发现,在PG库里,分区本质上就是一张表,其结构与原表的表结构是一致的。

partition_test_table的表结构:

select * from pg_attribute a, pg_class b where a.attrelid = b.oid and b.relname = 'partition_test_table';

p_a001的表结构:

select * from pg_attribute a, pg_class b where a.attrelid = b.oid and b.relname = 'p_a001';
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值