Я думаю, для этого вы не можете использовать УНИКАЛЬНОЕ ограничение, но вам нужно создать пользовательскую функцию
CREATE FUNCTION check_empID(varchar, boolean) RETURNS BOOLEAN
AS
// your implementation
затем используйте его с ограничением CHECK
CREATE TABLE someTable (
id serial primary key,
EmpId character varying(15) NOT NULL,
EmpName character varying(15),
isDeleted boolean,
CONSTRAINT ck_active_emp CHECK (check_empID(EmpId, isDeleted))
)
, так как функция будет использовать таблицу, вы можете создать таблицу без ограничений, чтобы вы могли создавать и тестировать свою функцию. затем измените таблицу, чтобы добавить ограничение позже