【问题标题】:postgres partiton char - values from to inclusivepostgres partition char - 从到包含的值
【发布时间】:2022-01-04 15:51:56
【问题描述】:

您好,我有一个名为 agent 的表,它在 name 上进行了分区 现在我想为从 g 到 z 的名称创建一个水平分区。 当我喜欢下面的代码片段名称(如“zizo”)时,由于 to 语句是独占的,所以找不到表的问题。 还有如何使它不区分大小写??

CREATE TABLE agents_gz
PARTITION OF agents
FOR VALUES FROM ('^g') TO ('^z');

【问题讨论】:

  • 如果表达式FOR VALUES FROM ...TO ...接受正则表达式(手册中没有),那么你可以试试这个:FOR VALUES FROM ('^(g|G)') TO ('^(zz|ZZ)')
  • @EdouardH。谢谢。你知道如何根据整数进行分区吗?喜欢from (100) to infinity?你知道如何在 postgres 中做到这一点吗?
  • FROM (100) TO (MAXVALUE)manual

标签: postgresql partitioning sharding


【解决方案1】:

你可以这样定义分区:

CREATE TABLE agents_gz
PARTITION OF agents
FOR VALUES FROM ('g') TO (MAXVALUE);

指定'^g' 只会意外地起作用,因为许多排序规则在比较字符串时会忽略特殊字符。但是使用'g'作为下限更好。

上限可以使用MAXVALUE,表示上限定义为最大可能字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 2015-03-06
    • 2014-11-18
    • 2013-11-30
    • 2020-10-14
    • 1970-01-01
    相关资源
    最近更新 更多