DROP INDEX#

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 BE. В стандарте SQL нет положений о индексах.

См. также

CREATE INDEX