Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вопрос по PRIMARY KEY

Сообщения:  [1-4] 

 
 автор: cheops   (22.02.2007 в 21:32)   письмо автору
 
   для: seregam   (22.02.2007 в 17:11)
 

Потому что первичный ключ строится на этих двух столбцах. Т.е. в качестве значения первичного ключа берётся не значение одного столбца, а совокупность двух столбцов. Значение будет уникальным, если будет уникальна пара id_catalog - name. Каждый столбец, который участвует в построении первичного ключа помечается флагом PRI.

   
 
 автор: seregam   (22.02.2007 в 17:11)   письмо автору
 
   для: cheops   (22.02.2007 в 16:29)
 

Но почему в этой таблице оба поля: и id_catalog, и name имеют флаг PRI, который отмечает первичный ключ (то есть, и столбец id_catalog отмечен как primary key, и столбец name тоже отмечен как primary key )?

   
 
 автор: cheops   (22.02.2007 в 16:29)   письмо автору
 
   для: seregam   (22.02.2007 в 16:03)
 

Индекс и столбец - это не одно и тоже. По сути индекс - это копия столбца или нескольких столбцов, которая поддерживается в отсортированном состоянии. Данные столбцов и индексов даже хранятся в разных файлах (более того, в версии MySQL 5.1 их можно разнести по разным дискам).
Индекс можно построить по одному или нескольким столбцам. Таблица может содержать несколько индексов, но главный (primary key) может быть только один (не важно, по одному или нескольким столбцам он построен).

   
 
 автор: seregam   (22.02.2007 в 16:03)   письмо автору
 
 

Купил книгу "Самоучитель MySQL 5" (Максим Кузнецов, Игорь Симдянов).
И вот в главе 5.1 "Первичный ключ" не могу кое-что понять.

Стр.78, цитата:
"Первичный ключ является главным индексом таблицы..... У таблицы может быть только один первичный ключ"

Стр.80, цитата:
Индекс необязательно должен быть объявлен по одному столбцу, вполне допустимо объявление индекса по двум или более столбцам.

И немного ниже (тоже стр.80) идет листинг 5.6 DESCRIBE catalogs, из которого видно, что оба поля: и id_catalog, и name имеют флаг PRI, который отмечает первичный ключ.

Вопрос:
Объясните, пожалуйста, так может быть у одной таблицы два первичных ключа или не может?
А то, только начав читать книгу, я уже немного запутался.
Заранее спасибо.

   

Сообщения:  [1-4] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования