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 нет никаких положений для индексов.