【发布时间】:2021-12-21 09:12:49
【问题描述】:
我有一个如下所示的 SQL 表。
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);
我有一张桌子。我需要将order_no 列与user_id 列分开。没有任何问题。
但我必须唯一的data_time 列,因为我使用分区。但date_time 列必须用user_id 和order_no 分隔。
顺便说一句,我不想这样unique (user_id, order_no, data_time)
我怎样才能在这个表中唯一的date_time?
【问题讨论】:
-
这应该足够了
date_time timestamp default now() unique。顺便说一句,tarih在主键中来自哪里? -
这是错误的。我纠正了我的错误。对不起
-
对具有默认值
now()的列具有唯一约束可能不是一个好主意。您不能在单个事务中插入多于一行。 -
如果我愿意,我该如何添加这个@Stefanov.sm
-
只需在您的 DDL 中的
now()之后添加unique,但是 - 正如 @LeandroBardelli 所说 - 在这样做之前请三思。
标签: sql postgresql partition