如何在分区表中实现多个唯一性?

How can multiple unique in partition tabale?

我有一个 SQL table 如下所示。

CREATE TABLE my_table 
(
    id serial,
    user_id int,
    order_no character varying(50),
    date_time timestamp,
    primary key (id, user_id, date_time),
    unique(user_id, order_no)
) PARTITION BY RANGE (date_time);

我有一个table。我需要使用 user_id 列来区分 order_no 列。没有任何问题。

但由于我使用分区,所以我必须唯一 data_time 列。但 date_time 列必须用 user_idorder_no.

分隔

顺便说一句,我不想​​这样unique (user_id, order_no, data_time)

如何在 table 中使 date_time 独一无二?

无法创建唯一索引或约束来保证 order_nouser_id 是唯一的。这是分区的缺点之一。

您可以在分区上创建唯一约束。虽然这不能保证全球唯一性,但它有很长的路要走。