|
|
|
|
|
для: seregam
(22.02.2007 в 17:11)
| | Потому что первичный ключ строится на этих двух столбцах. Т.е. в качестве значения первичного ключа берётся не значение одного столбца, а совокупность двух столбцов. Значение будет уникальным, если будет уникальна пара id_catalog - name. Каждый столбец, который участвует в построении первичного ключа помечается флагом PRI. | |
|
|
|
|
|
|
|
для: cheops
(22.02.2007 в 16:29)
| | Но почему в этой таблице оба поля: и id_catalog, и name имеют флаг PRI, который отмечает первичный ключ (то есть, и столбец id_catalog отмечен как primary key, и столбец name тоже отмечен как primary key )? | |
|
|
|
|
|
|
|
для: seregam
(22.02.2007 в 16:03)
| | Индекс и столбец - это не одно и тоже. По сути индекс - это копия столбца или нескольких столбцов, которая поддерживается в отсортированном состоянии. Данные столбцов и индексов даже хранятся в разных файлах (более того, в версии MySQL 5.1 их можно разнести по разным дискам).
Индекс можно построить по одному или нескольким столбцам. Таблица может содержать несколько индексов, но главный (primary key) может быть только один (не важно, по одному или нескольким столбцам он построен). | |
|
|
|
|
|
|
| Купил книгу "Самоучитель MySQL 5" (Максим Кузнецов, Игорь Симдянов).
И вот в главе 5.1 "Первичный ключ" не могу кое-что понять.
Стр.78, цитата:
"Первичный ключ является главным индексом таблицы..... У таблицы может быть только один первичный ключ"
Стр.80, цитата:
Индекс необязательно должен быть объявлен по одному столбцу, вполне допустимо объявление индекса по двум или более столбцам.
И немного ниже (тоже стр.80) идет листинг 5.6 DESCRIBE catalogs, из которого видно, что оба поля: и id_catalog, и name имеют флаг PRI, который отмечает первичный ключ.
Вопрос:
Объясните, пожалуйста, так может быть у одной таблицы два первичных ключа или не может?
А то, только начав читать книгу, я уже немного запутался.
Заранее спасибо. | |
|
|
|
|