DROP INDEX#
DROP INDEX
DROP INDEX — удалить индекс
Синтаксис
DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] name
[, ...] [ CASCADE | RESTRICT ]
Описание
DROP INDEX
удаляет существующий индекс из базы данных. Для выполнения этой команды вы должны быть владельцем индекса.
Параметры
CONCURRENTLY
Удалите индекс без блокировки одновременных выборок, вставок, обновлений и удалений в таблице индекса. Обычная команда
DROP INDEX
получает эксклюзивную блокировкуACCESS EXCLUSIVE
на таблицу, блокируя другие доступы до завершения удаления индекса. С этой опцией команда вместо этого ожидает завершения конфликтующих транзакций.Существует несколько ограничений, о которых следует знать при использовании этой опции. Можно указать только одно имя индекса, и опция
CASCADE
не поддерживается. (Таким образом, индекс, поддерживающий ограничениеUNIQUE
илиPRIMARY KEY
, не может быть удален таким образом). Также, обычные командыDROP INDEX
могут выполняться внутри блока транзакции, ноDROP INDEX CONCURRENTLY
- нет. Наконец, индексы на секционированных таблицах не могут быть удалены с использованием этой опции.Для временных таблиц
DROP INDEX
всегда является непараллельной операцией, так как другая сессия не может к ним обращаться, и непараллельное удаление индекса дешевле.IF EXISTS
Не генерировать ошибку, если индекс не существует. В этом случае будет выдано уведомление.
name
Имя (опционально с указанием схемы) индекса для удаления.
CASCADE
Автоматически удаляйте объекты, зависящие от индекса, а также все объекты, зависящие от этих объектов (см. Раздел 5.14).
RESTRICT
Отказаться от удаления индекса, если от него зависят какие-либо объекты. Это значение по умолчанию.
Примеры
Эта команда удалит индекс title_idx
:
DROP INDEX title_idx;
Совместимость
DROP INDEX
- это расширение языка Tantor SE-1C. В стандарте SQL нет положений о индексах.