文档章节

postgresql10新增加分区表PARTITION BY

p
 pg_edb
发布于 2017/08/16 15:39
字数 239
阅读 42
收藏 0

postgresql10以前版本的分区表是通过继承追加制约实现的,postgresql10新追加PARTITION BY可以直接定义list和range分区,检证如下:

postgres=# CREATE TABLE test(id integer,name text) PARTITION BY LIST (id);

postgres=# CREATE TABLE test_p1 PARTITION OF test FOR VALUES IN (10);

postgres=# CREATE TABLE test_p20 PARTITION OF test FOR VALUES IN (20);

postgres=# \d+ test;
                                    Table "public.test"
 Column |  Type   | Collation | Nullable | Default | Storage  | Stats target | Description
--------+---------+-----------+----------+---------+----------+--------------+-------------
 id     | integer |           |          |         | plain    |              |
 name   | text    |           |          |         | extended |              |
Partition key: LIST (id)
Partitions: test_p1 FOR VALUES IN (10),
            test_p20 FOR VALUES IN (20)
 

postgres=# \d+ test_p1;
                                  Table "public.test_p1"
 Column |  Type   | Collation | Nullable | Default | Storage  | Stats target | Description
--------+---------+-----------+----------+---------+----------+--------------+-------------
 id     | integer |           |          |         | plain    |              |
 name   | text    |           |          |         | extended |              |
Partition of: test FOR VALUES IN (10)
Partition constraint: ((id IS NOT NULL) AND (id = ANY (ARRAY[10])))

postgres=#

 

postgres=# insert into test values (10,'aaaa');
INSERT 0 1
postgres=# insert into test values (20,'bbbb');
INSERT 0 1
postgres=# insert into test values (30,'cccc');
ERROR:  no partition of relation "test" found for row
DETAIL:  Partition key of the failing row contains (id) = (30).
postgres=#

postgres=# select * from test;
 id | name
----+------
 10 | aaaa
 20 | bbbb
(2 rows)

postgres=# select * from test_p1;
 id | name
----+------
 10 | aaaa
(1 row)

postgres=# select * from test_p20;
 id | name
----+------
 20 | bbbb
(1 row)

postgres=#

 

© 著作权归作者所有

共有 人打赏支持
p
粉丝 0
博文 6
码字总数 2675
作品 0
杭州
私信 提问
PostgreSQL10 新特性(1): 分区表特性

概述 分区表特性是PG10新加的一个比较重要的特性,也是众多PGer翘首以盼的一个功能,相比之前利用“继承表+约束+触发器/规则”实现的分区表,PG10分区表在分区管理上和数据写入上都带来了很大...

tbing
2017/11/02
0
0
MySQL数据库分区的一些应用

http://hi.baidu.com/jxvip/item/d6084ea5094229258919d30c http://lehsyh.iteye.com/blog/732719 mysql的表分区 MySQL数据库分区的一些应用 分区的一些优点: 1)与单个磁盘或文件系统分区相...

毛朱
2014/04/10
0
0
Partition Tables介绍及分区表转换

--==================== -- Partition Tables --==================== 分区表相关概念: 当表数据不断增加时,查询数据库速度就回变慢,应用程序性能就会下降,这个时候就该考虑对表进行分区...

hnairdb
2018/11/08
0
0
oracle 对象管理 02_表

1.创建表 标准语句建表 CREATE TABLE table_name (column1 type1, column2 type2, ... ) tablespace tablespace_name; 可选数据类型: VARCHAR2(size) #变长字符串类型 CHAR(size) #定长字符......

PeakFang-BOK
2018/10/13
0
0
Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法

一. 分区表理论知识 Oracle提供了分区技术以支持VLDB(Very Large DataBase)。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。 Oracle的分区表可以包...

sjzmlb
2015/12/23
272
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux 命令

#查看系统版本cat /etc/issuecat /etc/redhat-release#yum源库路径/etc/yum.repos.d#更新源yum makecache#解包:tar zxvf FileName.tar#打包:tar czvf FileName...

MrPei
11分钟前
2
0
ZStack——自动化测试系统1:集成测试

测试,对于一个IaaS软件的可靠性、成熟度和可维护性而言,是一个重要的因素.测试在ZStack中是全自动的。这个自动化测试系统包括了三个部分:集成测试,系统测试,基于模块的测试。其中集成测...

ZStack社区版
16分钟前
1
0
springboot 中注入service为空

注意:在Controller中的方法必须用public 参考:spring boot 中使用@Autowired注入服务 服务为空没有注入成功

Skqing
27分钟前
3
0
PyCharm入门教程——IDE概要

PyCharm最新版本下载 JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web...

电池盒
31分钟前
1
0
JVM 知识

一、类加载机制 二、对象的创建的过程 三、JVM内存结构 四、JVM GC 从垃圾回收的角度,由于现在收集器基本都采用分代垃圾收集算法,所以Java堆还可以细分为:新生代和老年代:再细致一点有:...

梦想_与_现实
32分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部