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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Первичные ключи
 
 автор: coloboc66   (25.11.2004 в 17:49)   письмо автору
 
 

А что: первичные ключи в разных таблицах одной БД не могут иметь одинаковые значения?
Спасибо.

   
 
 автор: cheops   (25.11.2004 в 18:36)   письмо автору
 
   для: coloboc66   (25.11.2004 в 17:49)
 

Да, первичные ключи уникальны только в предлах одной таблицы.

   
 
 автор: coloboc66   (26.11.2004 в 11:06)   письмо автору
 
   для: cheops   (25.11.2004 в 18:36)
 

Уточните пожалуйста, из контекста вашего ответа я понял, что ключи из разных таблиц как раз могут иметь одинаковые значения.

   
 
 автор: cheops   (26.11.2004 в 12:31)   письмо автору
 
   для: coloboc66   (26.11.2004 в 11:06)
 

Уникальность ключа обеспечивается следующим образом - СУБД просматривает текущую таблицу и находит максимальное значение первичного ключа, поэтому следующее значение устанавливается равным этому значению плюс единица. Такая операция производится для каждой таблицы, при этом другие таблицы не принимаются во внимание (у них может вообще не быть первичного ключа). Поэтому первичный ключ уникален в пределах одной таблицы, но может совпадать со значениями из других таблиц.
Уникальность первичных ключей в пределах всей базы данных следует обеспечивать самостоятельно - СУБД об этом не заботится.

   
 
 автор: coloboc66   (26.11.2004 в 13:26)   письмо автору
 
   для: cheops   (26.11.2004 в 12:31)
 

У меня в двух таблицах указано: b int unsigned not null auto_increment primary key
и c int unsigned not null auto_increment primary key . В третьей таблице d int unsigned not null primary key . Когда я заполняю таблицы данными, то в b и c не пишу ничего, так-как auto_increment , а в d записываю 1. Выдается ошибка "дублирование ключей". А почему?

   
 
 автор: cheops   (26.11.2004 в 13:38)   письмо автору
 
   для: coloboc66   (26.11.2004 в 13:26)
 

А в таблице d уже имеются записи или нет? Может запись с таким ключом уже существует?

   
 
 автор: coloboc66   (26.11.2004 в 14:01)   письмо автору
 
   для: cheops   (26.11.2004 в 13:38)
 

А может быть! Буду уточнять. Пока спасибо!

   
Rambler's Top100
вверх

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