Postgresql UNIQUE INDEX

UNIQUE INDEX - Уникальный индекс в БД. Необходим для поддержания целостности БД и предотвращения дублирования данных в таблице.

UNIQUE INDEX в postgresql могут быть как составными, состоящие из нескольких полей, так и простыми состоящие из одного поля.

Рассмотрим уникальный индекс на примере СУБД Postgresql.

Синтаксис создания UNIQUE INDEX будет следующим:

CREATE UNIQUE INDEX название_индекса ON таблица (столбец1 [, ...])

Пример создания UNIQUE INDEX на sql:

Также нужно учитывать, в postgresql есть такая особенность, что значение NULL не будет равен друг другу. 

Иногда в базе данных, необходимо хранить, только одно значение по умолчанию, для этого можно воспользоваться UNIQUE INDEX WITH CONSTRAINT (уникальный индекс с условием)

Создадим таблицу со следующими полями.

id value is_default
1 10 FALSE
2 30 FALSE
3 50 TRUE

Добавим индекс, который будет следить за целостностью таблицы по полю is_default.

При добавлении более одной записи со значение is_default = TRUE, будет возникать следующая ошибка:

Kernel error: ERROR:  duplicate key value violates unique constraint "table1_is_default_true_unique_idx"

DETAIL:  Key (is_default)=(t) already exists.

Таким образом мы можем контролировать, чтобы не было более одной записи со значением is_default = TRUE.

Если вам помогла статья, пожалуйста перейдите по одному из рекламных блоков, расположенных на сайте. Таким образом вы поддержите проект. Спасибо

© Krenar 2020. All right reserved.