Spec-Zone.ru › SQLite

REINDEX

reindex-stmt:

REINDEX schema-name . index-name EXPRESSIONS table-name collation-name

Команда REINDEX используется для удаления и повторного создания индексов с нуля. Это полезно, если определение последовательности сортировки изменилось или если имеются индексы по выражениям, использующие функцию, определение которой изменилось.

Если за ключевым словом REINDEX не следует имя последовательности сортировки, идентификатор объекта базы данных или ключевое слово "EXPRESSIONS", перестраиваются все индексы во всех подключённых базах данных.

Если за ключевым словом REINDEX следует имя последовательности сортировки, заново создаются все индексы во всех подключённых базах данных, использующие указанную последовательность сортировки.

Если же аргумент, следующий за REINDEX, указывает на конкретную таблицу базы данных, перестраиваются все индексы этой таблицы. Если он указывает на конкретный индекс базы данных, заново создаётся только этот индекс.

Если аргумент — "EXPRESSIONS", перестраиваются все индексы по выражениям. Возможность перестраивать индексы по выражениям одной такой командой появилась в SQLite версии 3.53.0 (2026-04-09).

В команде вида "REINDEX name" совпадение с collation-name имеет приоритет перед совпадением с index-name или table-name. Этой неоднозначности синтаксиса можно избежать, всегда указывая schema-name при перестроении конкретной таблицы или индекса. Если name — это EXPRESSIONS, команда не только перестраивает все индексы по выражениям, но и перестраивает любые индексы, использующие последовательность сортировки с именем "expressions", а также индексы таблицы с именем "expressions" или индекс с именем "expressions", с учётом описанных выше правил приоритета.

Последнее обновление этой страницы: 2026-03-21 13:08:51Z

SQLite is in the Public Domain.
https://sqlite.org/lang_reindex.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API