IndexDef

Материал из DevelopmenOnTheEdge
Перейти к: навигация, поиск
Класс
IndexDef
Поддерживает документацию
да
Поддерживает extras
да

Индекс (IndexDef) — это определение индекса для таблицы в базе данных. Элементы IndexDef расположены внутри определения таблицы в папке Indices. У индекса есть имя, признак уникальности (unique) и набор колонок (как минимум одна), которые отображаются в дереве проекта как дочерние элементы.

Длина имени индекса ограничена 30 символами, но обратите внимание, что в DB2 не удастся создать индекс с именем длиннее 18 символов. Также обратите внимание, что не все СУБД поддерживают функциональные индексы (смотрите определение колонки индекса).

Любые изменения индексов (включая удаление) считаются неопасными, поэтому выполняются без предупреждения при синхронизации со структурой. Любое изменение индекса при синхронизации приведёт к его уничтожению и повторному созданию.

Определения индексов записывается в yaml-файле представления в секции indices внутри секции scheme. Примеры:

buildings:
 scheme:
   ...
   indices:
   - IDX_BUID_ID_KLADRCODE:
       unique: true
       columns:
       - ID
       - kladrStreetCode
       extras: kladr
   - IDX_BUILD_KLADR:
       columns: kladrStreetCode
       extras: kladr
       doc: значения могут быть не уникальны
   - IDX_BUILDINGS_NWK:
       unique: true
       columns:
       - buildingNo
       - lower(wing)
       - lower(letters)
       - kladrStreetCode
       extras: kladr
       doc: функциональный индекс с уникальными значениями