By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE t(id INT PRIMARY KEY, myColumn VARCHAR(100));
CREATE UNIQUE INDEX myIndex ON t((CASE WHEN myColumn <> 'myText' THEN myColumn END))
Records: 0 Duplicates: 0 Warnings: 0
INSERT INTO t(id, myColumn)
VALUES(1, 'myText'), (2, 'myText')
Records: 2 Duplicates: 0 Warnings: 0
INSERT INTO t(id, myColumn)
VALUES(3, 'aaaaa')
INSERT INTO t(id, myColumn)
VALUES(4, 'aaaaa')
-- Duplicate entry 'aaaaa' for key 'myIndex'
Duplicate entry 'aaaaa' for key 't.myIndex'
SELECT * FROM t
id | myColumn |
---|---|
1 | myText |
2 | myText |
3 | aaaaa |