gpt4 book ai didi

postgresql - 为什么无法创建分区表

转载 作者:行者123 更新时间:2023-11-29 11:34:02 25 4
gpt4 key购买 nike

我正在尝试创建带分区的简单表。

这是我的命令:

CREATE TABLE measurement (
city_id int not null,
logdate date not null,
peaktemp int,
unitsales int
) PARTITION BY RANGE (logdate);

这是我得到的错误:

SQL Error [42601]: ERROR: syntax error at or near "PARTITION"

无法理解是问题..

我正在使用 PostgreSQL 9.6.3

最佳答案

“声明性表分区”,即使用自己的语法将分区作为 DBMS 的一流功能,是 added in PostgreSQL 10 .

在较早的版本中,您可以使用“表继承”来更努力地实现相同的效果。有 a page in the manual describing how to do this manually ,总结为:

  1. 创建“主”表,所有分区都将从该表继承。
  2. 创建多个“子”表,每个表都继承自主表。
  3. 向分区表添加表约束以定义每个分区中允许的键值。
  4. 对于每个分区,在键列上创建一个索引,以及您可能需要的任何其他索引。
  5. 可选地,定义触发器或规则以将插入到主表中的数据重定向到适当的分区。
  6. 确保 constraint_exclusion 配置参数未在 postgresql.conf 中禁用。如果是,查询将不会根据需要进行优化。

为简化此操作,如果您无法升级到版本 10,则可以使用 pg_partman 等扩展名这为您提供了设置和管理分区集的附加功能。

关于postgresql - 为什么无法创建分区表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50131797/

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