Именованные ограничения

We use cookies. Read the Privacy and Cookie Policy

Именованные ограничения

При объявлении ограничения на уровне таблицы или на уровне столбца вы можете именовать ограничение, используя предложение CONSTRAINT. Если вы опустите предложение CONSTRAINT, Firebird сгенерирует уникальное системное имя ограничения. Ограничения хранятся в системной таблице RDB$RELATION_CONSTRAINTS.

Хотя присваивание имени ограничению необязательно, назначение описательного имени в предложении CONSTRAINT сделает ограничение удобным при поиске для изменения или удаления или когда его имя появляется в сообщении о нарушении ограничения. Помимо преимуществ документирования такой стиль особенно полезен для отделения определений ключа от определений столбцов в скриптах.

Имена для PRIMARY KEY и FOREIGN KEY

Именование ограничения имеет особый смысл для ограничений PRIMARY KEY и FOREIGN KEY, особенно в Firebird 1.5 и выше. Существует возможность перекрыть "родные" для Firebird ограничения по именованию ключей.

Во всех версиях указанное имя будет перекрывать имя по умолчанию iNTEG nn и будет применено к ограничению. Однако:

* в версии 1.5 и более поздних поддерживающий ограничение индекс будет иметь то же самое имя, что и ограничение;

* в версии 1.0.x будет использовано имя индекса по умолчанию (RDB$PRIMARYnn или RDB$FOREIGNnn).

! ! !

ПРИМЕЧАНИЕ. Существующие имена ограничений останутся без изменений при переводе базы данных с сервера версии 1.0.x на сервер версии 1.5.

. ! .

Поведение при именовании ограничений более подробно описывается в следующем разделе и в следующей главе.