1.9 KiB
aliases | tags | date | ||
---|---|---|---|---|
|
2024-11-05 |
Представьте, что вам нужно поддерживать уникальность данных, например, адресов электронной почты в таблице базы данных. Однако в таблице есть строки, ../Tombstone с помощью поля deleted_at
, и они также остаются в базе данных. В такой ситуации создание уникального индекса на поле с электронной почтой становится невозможным из-за дублирующихся значений. Частичный индекс решает эту проблему, позволяя включать в индекс только записи, которые не помечены как удаленные.
В PostgreSQL добавление уникального индекса для активных пользователей выглядит так:
CREATE UNIQUE INDEX users_email_uniq ON users (
email
) WHERE deleted_at IS NULL;
В этом случае строки, у которых deleted_at
не задан, включаются в индекс, а остальные игнорируются, что делает индекс более компактным и эффективным.
Мета информация
Область:: ../../meta/zero/00 Базы Данных Родитель:: Источник:: Создана:: 2024-11-05 Автор::