Если он их не вводил, там NULL. Если он вводит эти данные, то они должны быть уникальными между всеми введенными данными.
что-то я не пойму как построить ограничение, которое будет отслеживать уникальность только между теми значениями что не NULL.
индекс построил
CREATE UNIQUE INDEX "tbli" ON "tbl" ("col") WHERE "col" IS NOT NULL;
а как построить CONSTRAINT? не хочется RULE приделывать
UNIQUE INDEX это уже и есть ограничение целостности (constraint).
А вот это не так. Ограничение уникальности (UNIQUE CONSTRAINT) является не индексом, а его зависимостью. Т.е. невозможно удалить уникальный индекс, порожденный неявно при создании ограничения уникальности. Видимо, именно такой объект и хочет создать автор. Однако следует иметь в виду, что индекс, автоматически создаваемый при создании ограничения уникальности будет не частичным.
IS NOT NULL можно смело опустить, т.к. проверки на уникальность в юник-индексе и так всегда проводятся по NOT NULL значениям.