Синтаксис для создания индекса документирован в справочнике по языку Firebird 2.5, CREATE INDEX, а также содержит дополнительную информацию.
Синтаксис для создания индекса является:
CREATE [UNIQUE] [ASC[ENDING] | [DESC[ENDING]] INDEX indexname
ON tablename
{ (<col> [, <col> ...]) | COMPUTED BY (expression) }
<col> ::= a column not of type ARRAY, BLOB or COMPUTED BY
Таким образом, для создания (по возрастанию) индекс T_TABEL2.TBL1_ID
вы могли бы сделать:
CREATE INDEX ix_tabel2_tbl1_id ON T_TABEL2 (TBL1_ID)
Но, как я отметил ранее сегодня, что не является необходимым если в этом столбце есть внешний ключ, поскольку внешние ключи в Firebird автоматически получают индекс (то же самое относится к первичным ключам).
С вашего вопроса неясно, есть ли у вас внешние ключи, но я бы посоветовал вам создавать их вместо индекса: он дает вам индекс и, кроме того, устанавливает, что значение TBL1_ID
действительно существует в T_TABLE1
.
Просто имейте в виду, что создание индекса автоматически не улучшает производительность. Оптимизатор, например, может решить, что использование индекса не стоит усилий (или что конкретный индекс не относится к запросу).
У вас есть внешние ключи от 'T_TABEL2.TBL1_ID' до' T_TABLE1.ID' (и то же самое для 'T_TABLE3.TBL1_ID')? Если это так, дополнительных добавочных индексов нет. И для документации см. Http://www.firebirdsql.org/en/reference-manuals/ –