By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE test (`day` ENUM('Sun','Mon','Tue','Wed','Fri','Sat'), `time` CHAR(8));
CREATE UNIQUE INDEX idx
ON test ((CASE WHEN `day`='Sun' AND `time`='09:00 am' THEN 0 ELSE NULL END));
Records: 0 Duplicates: 0 Warnings: 0
INSERT INTO test VALUES
('Sun', '09:00 am'),
('Sun', '10:00 am'),
('Mon', '09:00 am'),
('Mon', '10:00 am'),
('Mon', '09:00 am'); -- allowed duplicate
SELECT * FROM test;
Records: 5 Duplicates: 0 Warnings: 0
day | time |
---|---|
Sun | 09:00 am |
Sun | 10:00 am |
Mon | 09:00 am |
Mon | 10:00 am |
Mon | 09:00 am |
INSERT INTO test VALUES
('Sun', '09:00 am'); -- non-allowed duplicate
Duplicate entry '0' for key 'test.idx'