При ограничении столбца соответствующее ограничение объявляется индивидуально для каждого столбца непосредственно после определения имени и типа столбца. При этом используется конструкция <ограничение_столбца>.
Определение ограничения таблицы осуществляется после описания всех столбцов, и при этом используется конструкция <тип_ограничения>, имеющая следующий формат: <ограничение_столбца>::=
[CONSTRAINT имя_ограничения] { UNIQUE | PRIMARY KEY | CHECK(<условие_проверки>) | REFERENCES родительская_таблица [(столбец)] [ON DELETE {NO ACTION | CASCADE| SET DEFAULT | SET NULL}] [ON UPDATE{NO ACTION | CASCADE| SET DEFAULT | SET NULL}]}. Рекомендуется ограничениям давать имена, т.к. при использовании запроса ALTER TABLE удалить ограничение можно только по его имени.
При создании таблицы имя ограничения задается произвольно, но должно быть уникальным для данной таблицы и, желательно, отражать смысл ограничения.
Если «CONSTRAINT имя_ограничения» отсутствует, то СУБД присваивает ограничению свое системное имя. Имя ограничения можно посмотреть в IBExpertна закладке «Ограничения» для каждого столбца конкретной таблицы.
Параметр UNIQUE определяет, что данный столбец должен иметь уникальные значения, т.е. при изменении данных в таблице (добавлении или обновлении строк) автоматически будет осуществляться проверка, что подобного значения в столбце нет.
Предложение PRIMARY KEY определяет столбец в качестве первичного ключа. Следует обратить внимание на то, что столбец таблицы, определенный как первичный ключ, должен обязательно иметь ограничение NOT NULL.
Рассмотрим запрос CREATE TABLE c ограничением определенного столбца. Например, чтобы создать таблицу Abonent, определив поле AccountCD в качестве первичного ключа, необходимо использовать следующий запрос:
предыдущаяследующая