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.
Если вам помогла статья, пожалуйста перейдите по одному из рекламных блоков, расположенных на сайте. Таким образом вы поддержите проект. Спасибо