CREATE INDEX
CREATE INDEX добавляет обслуживаемую структуру доступа к таблице.
Синтаксис
Заголовок раздела «Синтаксис»CREATE [UNIQUE] INDEX [IF NOT EXISTS] index_nameON table_name (column_name [operator_class] [, ...])[USING { BTREE | HASH | BITMAP | HNSW }][WITH (option = expression [, ...])][WHERE condition]Описание
Заголовок раздела «Описание»BTREE, HASH и BITMAP являются проверенными обычными методами. Список из нескольких столбцов создаёт составной индекс. UNIQUE обеспечивает уникальность индексируемых не-NULL ключей, а WHERE включает лишь строки с истинным локальным условием.
Параметры
Заголовок раздела «Параметры»index_name идентифицирует объект каталога. column_name перечисляет хранимые
ключи по порядку. operator_class выбирает видимый built-in или
extension-bound contract key и strategy для этого столбца. USING выбирает
метод; без него выбор делает движок. WITH в основном предназначен для
параметров конкретного метода.
Результат
Заголовок раздела «Результат»Успех возвращает командный результат без строк. SHOW INDEXES показывает сохранённое определение; выбор планировщика проверяется через EXPLAIN.
Поведение в транзакции
Заголовок раздела «Поведение в транзакции»Создание индекса транзакционно и публикуется вместе с поколением каталога таблицы при COMMIT.
Ошибки и ограничения
Заголовок раздела «Ошибки и ограничения»Повтор активного UNIQUE-ключа отклоняется. Частичное условие должно быть детерминированным и локальным для строки. Частичные HNSW-индексы отклоняются. IF NOT EXISTS подавляет только идентичное определение; иное под тем же именем завершается ошибкой. Operator class должен соответствовать типу столбца и выбранному access method.
Эффективный Principal должен владеть целевой таблицей; сессии также нужен CONNECT. Индекс получает совместимое владение в каталоге.
CREATE TABLE ref_create_index (id INTEGER PRIMARY KEY, email TEXT, active BOOLEAN);CREATE UNIQUE INDEX ref_email_active_idxON ref_create_index (email) USING HASH WHERE active = true;SHOW INDEXES FROM ref_create_index;См. также
Заголовок раздела «См. также»См. Индексы, Команды native extensions, ALTER INDEX и SHOW.