У вас не может быть УНИКАЛЬНОГО ограничения с частичным индексом.
Из создать таблицу мы можем видеть в определении УНИКАЛЬНОГО ограничения, что синтаксис встроенного индекса:
УНИКАЛЬНО(column_name [, ...]) index_parameters |
А затем index_parameters в ограничениях UNIQUE, PRIMARY KEY и EXCLUDE:
[ INCLUDE ( column_name [, ... ] ) ]
[ WITH ( storage_parameter [= value] [, ... ] ) ]
[ USING INDEX TABLESPACE tablespace_name ]
Так что нет места для частичного индекса (ГДЕ условие).
Во второй попытке вы забыли о ALTER TABLE artikal_normativi
, поэтому:
ALTER TABLE artikal_normativi
ADD CONSTRAINT artikal_normativi_uix_constraint UNIQUE USING INDEX artikal_normativi_uix;
Но тогда у вас возникнет другая проблема, а это ограничение ограничений, в том числе УНИКАЛЬНОЕ:
Из описания ДОБАВИТЬ table_constraint_using_index
Индекс не может иметь столбцы выражений или не может бытьчастичный индекс . Кроме того, это должен быть индекс b-дерева с порядком сортировки по умолчанию. Эти ограничения гарантируют, что индекс будет эквивалентен индексу, который будет построен обычной командой ADD PRIMARY KEY или ADD UNIQUE.