3

У меня есть таблица:PostgreSQL Уникальный Constraint с исключениями

CREATE TABLE dbo."TransportInteraction" 
(
    "Id" bigint NOT NULL DEFAULT nextval('dbo."TransportInteraction_Id_seq"'::regclass), 
    "Message" character varying(256), 
    "TransportActionId" integer NOT NULL, 
    "TimeCreated" timestamp without time zone NOT NULL, 
    "TimeInserted" timestamp without time zone NOT NULL, 
    "TaskId" bigint 
) 

Как правило, эта таблица отображающие действия по задаче. TransportActionId - это integer, определяющий тип действия. Некоторые типы действий должны быть уникальными для каждой задачи, а некоторые - нет.

Поэтому мне нужно ограничение типа:
UNIQUE ("TaskId", "TransportActionId") применяется ко всем действиям с TransportActionId != (2||3 || 4).

Таким образом, все действия, кроме тех, что указаны с ActionId=2,3 or 4.

Любые идеи?

ответ

Смежные вопросы