Postgres 继承分区表的索引

ABC*_*IJK 10 postgresql index copy

我有一个包含大约 6000 万行的表,我按状态将其划分为 53 个子表。这些表像这样“继承”大表:

CREATE TABLE b2b_ak (LIKE b2b including indexes, CHECK ( state = 'AK') ) INHERITS (b2b8) TABLESPACE B2B;

我的问题是:如果在复制语句完成之前我不在 b2b8 上构建索引,子表是否继承索引?换句话说,我想这样做:

Create b2b8
Create b2b8_ak inherits b2b8
COPY b2b8 FROM bigcsvfile.csv
CREATE INDEX CONCURRENTLY
Run Code Online (Sandbox Code Playgroud)

并让整个事情结果在子表上创建了所有索引。

Jon*_*son 12

如前所述,INHERITS不复制索引定义。

因此,您需要说明继承和索引复制。

    CREATE TABLE sub_tab (LIKE tab INCLUDING ALL) INHERITS (tab);
Run Code Online (Sandbox Code Playgroud)

谢谢@dezso 的评论。


jja*_*nes 1

来自文档: “LIKE....与 INHERITS 不同,新表和原始表在创建完成后完全解耦。对原始表的更改不会应用于新表”