I’m trying to create a table to store order_details. The table has a column status that should only be allowed to contain the value true once per each order_id, but may contain the value false multiple times per order_id.
create table order_details (
id serial,
order_id integer not null,
status boolean not null
);
I want to do this within the table structure itself. Any help would be appreciated. Thanks in advance.
Advertisement
Answer
You can create a filtered unique index:
create unique index on order_details(order_id) where status;