ALTER INDEX
Изменение определения индекса.
Синтаксис
ALTER INDEX [ IF EXISTS ] name RENAME TO new_name
ALTER INDEX [ IF EXISTS ] name SET TABLESPACE tablespace_name
ALTER INDEX [ IF EXISTS ] name SET ( storage_parameter = value [, ...] )
ALTER INDEX [ IF EXISTS ] name RESET ( storage_parameter [, ...] )
ALTER INDEX ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]
SET TABLESPACE new_tablespace [ NOWAIT ]
Описание
ALTER INDEX изменяет определение существующего индекса. Поддерживаются следующие подформы:
- RENAME — изменяет имя индекса; не влияет на хранимые данные.
- SET TABLESPACE — изменяет табличное пространство, в котором размещён индекс, и перемещает выделенный файл данных индекса в новое табличное пространство. Для изменения табличного пространства индекса необходимо иметь разрешение CREATE в новом табличном пространстве. Все индексы в табличном пространстве текущей базы данных могут быть перемещены с помощью формы ALL IN TABLESPACE, которая блокирует все индексы, подлежащие перемещению, а затем перемещает каждый из них. Эта возможность также поддерживается в форме OWNED BY, которая перемещает только индексы, принадлежащие указанной роли. Если указан параметр NOWAIT, команда завершится ошибкой, если требуемая блокировка не может быть получена немедленно. Обратите внимание, что системные каталоги этим оператором не перемещаются. При необходимости используйте команду ALTER DATABASE или явно вызовите ALTER INDEX. Дополнительную информацию см. в разделе CREATE TABLESPACE.
- IF EXISTS — если индекс не существует, ошибка не возникает, но выводится предупреждение.
- SET — изменяет специфические для индекса параметры хранения. Встроенные методы индексации принимают один параметр: fillfactor. Коэффициент заполнения (fillfactor) индекса — это процентное значение, определяющее степень, до которой метод индексации пытается заполнить страницу индекса. Эта команда не изменяет содержимое индекса немедленно. Чтобы добиться желаемого эффекта, выполните перестроение индекса с помощью REINDEX.
- RESET — сбрасывает параметры хранения индекса к их значениям по умолчанию. Встроенные методы индексации принимают один параметр: fillfactor. Как и при использовании SET, может потребоваться выполнение REINDEX для полного обновления индекса.
Параметры
name
- Имя существующего индекса, который необходимо изменить (необязательно с указанием схемы).
new_name
tablespace_name
- Табличное пространство, в которое будет перемещён индекс.
storage_parameter
- Имя параметра хранения, специфичного для метода индексации.
value
- Значение параметра хранения, специфичного для метода индексации; может зависеть от числового или текстового значения параметра.
Примеры
Изменение имени индекса:
ALTER INDEX distributors RENAME TO suppliers;
Перемещение индекса в другое табличное пространство:
ALTER INDEX distributors SET TABLESPACE fasttablespace;
Изменение коэффициента заполнения индекса (при условии, что метод индексации его поддерживает):
ALTER INDEX distributors SET (fillfactor = 75);
REINDEX INDEX distributors;
Совместимость
ALTER INDEX является расширением базы данных YMatrix.
См. также
CREATE INDEX, DROP INDEX