айдишник, вторая Y/N (активен,неактивен).Сейчас установлен UNIQUE(однаКолонка,втораяКолонка). Есть логика которая позволяет сделать неактивным айдишник. Как сделать чтобы в моей таблице по одинаковому айдишнику была возможность иметь много строк с N и лишь 1у с Y?
Делаешь юник констрейнт по двум полям c WHERE TheBoolean = "Y"
Если она Y/N колонка налабл, то еще учти что NULL <> NULL
я нагугли такой вариант ALTER TABLE ADMITED_TABLE ADD CONSTRAINT AAAA CHECK (dateadmited IS NULL OR mark IS NULL);
не, там при создании по умолчанию Y
Я делал такое даже энтити фреймворком, в постгресе получилось CREATE UNIQUE INDEX "IX_Contracts_IsActive_AccountId" ON public."Contracts" USING btree ("IsActive" ASC NULLS LAST, "AccountId" ASC NULLS LAST) TABLESPACE pg_default WHERE "IsActive" = true;
Сделай поле int (small int) inactive int not null 0 будет означать активность (отсутствие неактивности) не ноль - присутствие неактивности. Но значение придется вычислять
Обсуждают сегодня