我有如下表唯一約束到特定的文本
create table order(
status text,
user_id int (FK to user table),
time time stamp with time zone
);
而下面的約束的狀態
CONSTRAINT valid_status CHECK (status = ANY (ARRAY['requested'::text, 'accepted'::text, 'declined_by_manager'::text, 'declined_by_user'::text, 'finished_by_user'::text, 'canceled_by_system'::text, 'washing'::text, 'finished_by_manager'::text]))
我想要的是,有可能只有一個訂單狀態爲「要求」並與用戶的「n」 水木清華像Alter table order add constraint "only_one_order_per_user" UNIQUE(user_id, status = 'requested')
我真的newbee與Postgres的。在此先感謝
感謝響應,但狀態不僅是請求可以完成,接受和開始,CONSTRAINT valid_status CHECK(status = ANY(ARRAY ['requested':: text,'accepted':: text,'declined_by_manager':: text,'declined_by_user':: text'' finished_by_user'::文本,‘canceled_by_system’::文本,‘洗’::文本,‘finished_by_manager’::文)) –
編輯我的回答對多個狀態 – Mokadillion
你的情況,我將無法創建2個declined_by_user訂單。我只需要一個狀態爲「請求」的訂單,而第i個用戶標識爲1 –