Создает индекс
CREATE [UNIQUE] INDEX [IF NOT EXISTS] [имя_базы_данных .] имя_индексаON имя_таблицы ( имя_столбца [, имя_столбца]* )имя_столбца = имя [COLLATE имя_сортировки] [ASC | DESC]
Эта команда содержит ключевые слова CREATE INDEX, за которыми следуют имя нового индекса, ключевое слово ON, имя существующей индексируемой таблицы и заключенный в скобки список имен ее столбцов, которые используются в качестве ключа индекса. После любого имени столбца можно указывать ключевые слова ASC и DESC, которые определяют порядок сортировки, однако он игнорируется в текущей реализации этого оператора, а сортировка всегда выполняется в порядке возрастания.
После имени столбца можно указывать условие COLLATE, которое задает порядок сортировки текстовых элементов столбца. По умолчанию применяется порядок сортировки, который определен для столбца в операторе CREATE TABLE. Если порядок сортировки не задан, используется встроенный порядок BINARY.
Количество индексов, которые можно присоединять к одной таблице, и количество столбцов в индексе не ограничены.
Если между ключевыми словами CREATE и INDEX указано ключевое слово UNIQUE, дублирование элементов индекса не допускается, и при попытке вставить дубликат элемента возникает ошибка.
Тексты всех операторов CREATE INDEX хранятся в таблице sqlite_master или sqlite_temp_master table в зависимости от того, является ли индексируемая таблица временной. При каждом открытии базы данных все операторы CREATE INDEX считываются из таблицы sqlite_master и используются для восстановления внутреннего представления структуры индекса в QDB.
Если указано необязательное условие IF NOT EXISTS и существует еще один индекс с таким же именем, эта команда не выполняет никаких действий.
Для удаления индексов используется команда SQL: DROP INDEX.
Выражения в SQL запросах, Ключевые слова, поддерживаемые QDB
Предыдущий раздел: перейти