DROP INDEX
Эта страница переведена при помощи нейросети GigaChat.
DROP INDEX
— удаление индекса.
Синтаксис
DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
Описание
DROP INDEX
удаляет существующий индекс из системы баз данных. Чтобы выполнить эту команду, необходимо быть владельцем индекса.
Параметры
CONCURRENTLY
- Позволяет не блокировать параллельные операции выборки, вставки, обновления и удаления строк из таблицы. Обычная команда
DROP INDEX
накладывает блокировкуACCESS EXCLUSIVE
на таблицу, из-за чего все другие обращения к ней приостанавливаются до завершения операции. В отличие от этого, при использованииCONCURRENTLY
команда ждет завершения всех конфликтующих транзакций.Существует ряд ограничений при использовании данного метода. Разрешено указывать только одно имя индекса, а использование
CASCADE
не допускается. Это означает, что удалить индекс, связанный с ограничениемUNIQUE
илиPRIMARY KEY
, таким образом нельзя. Также, в отличие от обычногоDROP INDEX
, вариант сCONCURRENTLY
нельзя запускать внутри транзакционного блока. Кроме того, данный параметр не применяется к индексам на партиционированных таблицах.При работе с временными таблицами
DROP INDEX
всегда выполняется без конкуренции, так как такие таблицы изолированы от других сессий, и неконкурентный способ удаления оказывается более эффективным.
IF EXISTS
- Подавляет ошибку, если указанный индекс не существует, вместо этого выводится уведомление.
name
- Указывает имя существующего индекса, при необходимости дополненное схемой, который должен быть удален.
CASCADE
- Автоматически удаляет объекты, которые зависят от индекса, а также все объекты, зависящие от этих объектов.
RESTRICT
- Запрещает удаление индекса, если какие-либо объекты зависят от него. Это значение по умолчанию.
Примеры
Удаление индекса title_idx
:
DROP INDEX title_idx;
Совместимость
DROP INDEX
является расширением языка PostgreSQL. В стандарте SQL нет никаких положений для индексов.