I have the table Tester on oracle with the following columns:
TesterID is the primary key. Now I want that there can only be one Default Tester, which means only one Tester can have the calues IsDefault =Y at an ApplicationID.
I tried it with a constraint:
alter table Tester add constraint Tester_ISDEFAULT UNIQUE(IsDefault,Application_ID);
Is it possible to make the unique key on where isdefault= Y?
Thanks for help!
Not with a UNIQUE
constraint. However, you can use a UNIQUE INDEX
instead:
CREATE UNIQUE INDEX ApplicationId_Default_Y ON tester (
CASE WHEN IsDefault = 'Y'
THEN ApplicationId
ELSE NULL
END
);
Here's a DEMO.