Создать уникальный массив переменных символов postgres - PullRequest
1 голос
/ 13 марта 2020

Я пытался создать уникальный индекс для столбца charactery varying[]. Я создаю функцию, измененную из этой записи , тип которой был целым числом []. При добавлении списков строк массив приводит к дублированию.

Код

create function sort_array(character varying[]) returns character varying[] as $$
    select array_agg(n) from (select n from unnest($1) as t(n) order by n) as a;
$$ language sql immutable;

CREATE UNIQUE INDEX ip_uniq ON table.external (sort_array(ip));

При обновлении

UPDATE table.external SET ip = array_cat(ip,'{1.1.1.1,2.2.2.2}') WHERE id = NO_ID

Результат

ip = {1.1.1.1,2.2.2.2,1.1.1.1,2.2.2.2}

Ожидается

ip = {1.1.1.1,2.2.2.2}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...