|
|
|
| Добрый день! Хочу уточнить разницу между этими двумя конструкциями. Применение каждой из них делает существование двух одинаковых записей в соответствующем столбце невозможным, т.е. обе эти конструкции выполняют одну и ту же функцию насколько я понимаю. Однако первичный ключ в таблице может быть только один, а столбцов с индексом UNIQUE - неограниченное количество. Почему для реализации одной и той же функции введены 2 разные конструкции? И зачем сделано так, что PRIMARY KEY может быть только один на таблицу, а UNIQUE-столбцов может быть сколько угодно? | |
|
|
|
|
|
|
|
для: alexey_tihonenko
(05.11.2009 в 12:32)
| | первичный ключ должен позволять однозначно идентифицировать любую строку таблицы.
Поэтому столбец, на котором он создан, не может иметь незаполненных значений (NULL) .
В некоторых СУБД первичный ключ связан с кластерным индексом и применяется для косвенной индексации из остальных индексов - т.е. фактически все остальные индексы содержат не смещения в табличном пространстве к указываемым записям, а значения первичного ключа. В такой ситуации несколько первичных ключей - нонсенс.
Обычный уникальный индекс это лишь индекс с требованием несуществования двух и более одинаковых значений. строки с незаполненным (NULL) полем такого индекса вполне могут присутствовать в таблице, при чем в любом количестве.
Вот примерно так. | |
|
|
|
|
|
|
|
для: Trianon
(05.11.2009 в 12:46)
| | Спасибо, достаточно понятное объяснение. | |
|
|
|