gpt4 book ai didi

PostgreSQL 分区语法 FOR VALUES

转载 作者:行者123 更新时间:2023-11-29 13:40:36 24 4
gpt4 key购买 nike

我正在研究 PostgreSQL 中的表分区。

我为我的主表创建了一个分区:

CREATE TABLE head_partition_table PARTITION OF master_table 
FOR VALUES FROM (DATE_START) TO (DATE_END)
PARTITION BY RANGE (ENTITY_ID, GROUP_NAME);

之后,我想把head_partition_table分成更小的分区,所以我写了代码:

CREATE TABLE subpartition_table OF head_partititon_table 
FOR VALUES FROM ('0', 'A') TO ('0', 'Z');

我找不到如何指定单个值而不是范围的方法。

有点像

CREATE TABLE subpartition_table OF head_partititon_table 
FOR VALUES ('0', 'A');
CREATE TABLE subpartition_table OF head_partititon_table
FOR VALUES ('0', 'Z');

我在“(”或“(”附近出现语法错误

这可能吗?

附言我试过 PARTITION BY LIST,但在那种情况下,我只能使用一个字段。

最佳答案

你可以通过引入另一层分区来按你想要的列表对它们进行分区:

CREATE TABLE head_partition_table PARTITION OF master_table 
FOR VALUES FROM ('2019-01-01') TO ('2020-01-01')
PARTITION BY LIST (entity_id);

CREATE TABLE subpartition1 PARTITION OF head_partition_table
FOR VALUES IN ('0')
PARTITION BY LIST (group_name);

CREATE TABLE subsubpartition1 PARTITION OF subpartition1
FOR VALUES IN ('A');

但这与其说是有用的东西,不如说是一种学术练习。

任何超过最多几百个分区的东西都不会表现良好。

关于PostgreSQL 分区语法 FOR VALUES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55922778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com