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