I currently have the following constraint on a table:
ALTER TABLE myTable
ADD CONSTRAINT unique_row UNIQUE (content_id, brand_id, language_id);
I want to add a condition to the constraint: I want the constraint to work the same way, but with only a single row where is_archived is FALSE:
ALTER TABLE myTable
ADD CONSTRAINT unique_row UNIQUE (content_id, brand_id, language_id, !is_archived);
However, when I do this I get a syntax error.
If is_archived = true
then multiple rows with the same combination of content_id
and brand_id
are allowed. Basically multiple rows that are the same can be archived, but only one can be unarchived.