Postgresql 使用不同的主键创建类似表的分区

Postgresql 使用不同的主键创建类似表的分区,postgresql,postgresql-12,Postgresql,Postgresql 12,我有一个现有的狗表,我想使用color列按列表进行划分: CREATE TABLE dogs( id int主键始终作为标识生成, 彩色文本, 名称文本 ) ; 因为无法对现有表进行分区,所以我将创建一个新的空分区表,然后跨多个分区复制数据 创建表 交易捕获。\客户\发票 ( 喜欢 交易记录、客户记录、发票 包括所有 ) 按列表划分(账单月) ; 报告如下: ERROR: insufficient columns in PRIMARY KEY constraint definition D

我有一个现有的狗表,我想使用
color
列按列表进行划分:

CREATE TABLE dogs(
id int主键始终作为标识生成,
彩色文本,
名称文本
)
;
因为无法对现有表进行分区,所以我将创建一个新的空分区表,然后跨多个分区复制数据

创建表
交易捕获。\客户\发票
(
喜欢
交易记录、客户记录、发票
包括所有
)
按列表划分(账单月)
;
报告如下:

ERROR:  insufficient columns in PRIMARY KEY constraint definition
DETAIL:  PRIMARY KEY constraint on table "_dogs" lacks column "colour" which is part of the partition key.
我知道我可以像这样忽略主键,但是有一个没有主键的表似乎很糟糕

创建表
_狗
(
喜欢
狗
包括所有
不包括索引
)
按列表划分(颜色)
;

继续执行的最佳方法是什么,这样我就有了一个仍然有主键的分区表?

将分区键添加到主键:

ALTER TABLE trade_capture._customer_invoice
   ADD PRIMARY KEY (id, bill_month);

在分区表上没有唯一约束的选项。

感谢您的支持,也感谢您在SQL相关SO方面所做的辛勤工作。我想,当我在这里发布一个SQL问题时,我真的在想“劳伦斯·阿尔比,一个没有名字的马,和欧文·布兰德斯特特对这个问题怎么看?”