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