FirebirdSQL logo
 DOMAININDEX 

Ограничения

Существуют четыре вида ограничений:

  • первичный ключ (PRIMARY KEY);

  • уникальный ключ (UNIQUE);

  • внешний ключ (REFERENCES или FOREIGN KEY);

  • проверочное ограничение (CHECK).

Ограничения могут быть указаны на уровне столбца (“ограничения столбцов”) или на уровне таблицы (“табличные ограничения”).Ограничения уровня таблицы необходимы, когда ключи (ограничение уникальности, первичный ключ или внешний ключ) должны быть сформированы по нескольким столбцам, или, когда ограничение CHECK включает несколько столбцов, т.е.действует на уровне записи.Синтаксис для некоторых типов ограничений может незначительно отличаться в зависимости от того определяется ограничение на уровне столбца или на уровне таблицы.

  • Ограничение на уровне столбца указывается после определения других характеристик столбца. Оно может включать только столбец указанный в этом определении.

  • Ограничения на уровне таблицы указываются после определений всех столбцов. Ограничения таблицы являются более универсальным способом записи ограничений, поскольку позволяют ограничение более чем для одного столбца таблицы.

  • Вы можете смешивать ограничения столбцов и ограничения таблиц в одном операторе CREATE TABLE.

Системой автоматически создаётся индекс для первичного ключа (PRIMARY KEY), уникального ключа (UNIQUE KEY) и внешнего ключа (REFERENCES для ограничения уровня столбца, и FOREIGN KEY REFERENCES для ограничения уровня таблицы).

Имена для ограничений и их индексов

Если имя ограничения не задано, то оно автоматически будет сгенерировано системой.

Ограничения уровня столбца и их индексы автоматически именуются следующим образом:

  • Имена ограничений имеют следующий вид INTEG_<n>, где n представлено одним или несколькими числами;

  • Имена индексов имеют вид RDB$PRIMARY<n> (для индекса первичного ключа), RDB$FOREIGN<n> (для индекса внешнего ключа) или RDB$<n> (для индекса уникального ключа), где n представлено одним или несколькими числами;

Схемы автоматического формирования имён для ограничений уровня таблицы и их индексов одинаковы.