创建分区表

PolarDB PostgreSQL版创建分区表的语法完全兼容PostgreSQL。本文详细介绍了其语法及创建不同类型分区表的示例。

语法说明

CREATE TABLE [ IF NOT EXISTS ] table_name ( [
  { column_name data_type [ COMPRESSION compression_method ] [ COLLATE collation ] [ column_constraint [ ... ] ]
    | table_constraint
    | LIKE source_table [ like_option ... ] }
    [, ... ]
] )
PARTITION BY { RANGE | LIST | HASH } ( { column_name | ( expression ) } 
[ WITH ( storage_parameter [= value] [, ... ] ) | WITHOUT OIDS ]
[ TABLESPACE tablespace_name ]
说明

PolarDB PostgreSQL版完全兼容PostgreSQL。关于创建分区表的详细语法说明,请参考PostgreSQL文档

示例

创建范围分区表

CREATE TABLE tab_range(id int, value int)PARTITION BY RANGE (id);

创建列表分区表

CREATE TABLE tab_list(id int, value int)PARTITION BY list (id);

创建哈希分区表

CREATE TABLE tab_hash(id int, value int)PARTITION BY hash (id);

注意事项

  • PolarDB PostgreSQL版中创建分区表时,默认没有任何分区。此时插入数据会报错, 因为它不能被定位到某个分区。您需要先新建分区,然后再向特定分区中插入数据。

  • 虽然在PostgreSQL中没有限制,但是我们建议在PolarDB PostgreSQL版中分区不要超过三级。