Сейчас на сайте
Сейчас на сайте 0 пользователей и 0 гостей.

Ограничение первичных ключей

До этого мы воспринимали первичные ключи исключительно, как логические понятия. Хоть мы и знаем, что такое первичный ключ, и как он должен использоваться в любой таблице, мы не ведаем "знает" ли об этом SQL. Поэтому мы использовали ограничение UNIQUE или уникальные индексы в первичных ключах, чтобы предписывать им уникальность. В более ранних версиях языка SQL , это было необходимо, и могло выполняться этим способом. Однако теперь, SQL поддерживает первичные ключи непосредственно с ограничением Первичный Ключ ( PRIMARE KEY ). Это ограничение может быть доступным или недоступным вашей системе.

PRIMARY KEY может ограничивать таблицы или их столбцы. Это ограничение работает так же как и ограничение UNIQUE, за исключением когда только один первичный ключ ( для любого числа столбцов ) может быть определен для данной таблицы. Имеется также различие между первичными ключами и уникальностью столбцов в способе их использоваться с внешними ключами, о которых будет рассказано в Главе 19 . Синтаксис и определение их уникальности те же что и для ограничения UNIQUE.

Первичные ключи не могут позволить значений NULL. Это означает что, подобно полям в ограничении UNIQUE, любое поле исполяьзуемое в ограничении PRIMARY KEY должно уже быть объявлено NOT NULL . Имеется улучшенный вариант создания нашей таблицы Продавцов :

CREATE TABLE Salestotal ( snum integer NOT NULL PRIMARY KEY, sname char(10) NOT NULL UNIQUE, city char(10), comm decimal);

Как вы видите, уникальность (UNIQUE) полей может быть объявлена для той же самой таблицы. Лучше всего помещать ограничение PRIMARY KEY в поле (или в поля), которое будет образовывать ваш уникальный идентификатор строки, и сохранить ограничение UNIQUE для полей, которые должны быть уникальными логически ( такие как номера телефона или поле sname ), а не для идентификации строк.