1

我们可以创建一个范围分区的表,其中分区键不按顺序排列吗?例如。

PARTITION 00001 ENDING AT ('2018-07-02') INCLUSIVE 

PARTITION 00002 ENDING AT ('2018-07-03') INCLUSIVE 

PARTITION 00003 ENDING AT ('2018-07-08') INCLUSIVE 

PARTITION 00004 ENDING AT ('2018-07-05') INCLUSIVE 

PARTITION 00005 ENDING AT ('2018-07-20') INCLUSIVE

这是在 DB2 中创建分区表的有效 DDL 吗?

4

1 回答 1

2

不,分区必须“按顺序”。有关详细信息,请参见此处(搜索partition-element)。我已经强调了相关部分。

键值遵循以下规则:

  • 第一个值对应于键的第一列,第二个值对应于第二列,依此类推。使用比键中的列少的值与为省略的列使用最高或最低值具有相同的效果,具体取决于它们是升序还是降序。

  • 对于升序情况,任何分区中键的最高值必须低于下一个分区中键的最高值。

  • 为最后一个分区指定的值被强制执行。为最后一个分区指定的值是可以放在表中的键的最大值。任何大于为最后一个分区指定的值的键值都超出范围。

  • 如果所有值的串联超过 255 个字节,则仅考虑前 255 个字节。

  • 如果键包含 ROWID 列或具有基于 ROWID 数据类型的不同类型的列,则考虑为相应 ROWID 列指定的 17 个字节的常量。

  • 如果为分区键指定了空值并且键是升序的,则返回错误,除非指定了 MAXVALUE。如果键是降序的,则返回错误,除非指定了 MINVALUE。
于 2018-08-06T14:28:40.333 回答