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