| |
|
|
| | А что: первичные ключи в разных таблицах одной БД не могут иметь одинаковые значения?
Спасибо. | |
| |
|
|
| |
|
|
| |
для: coloboc66
(25.11.2004 в 17:49)
| | | Да, первичные ключи уникальны только в предлах одной таблицы. | |
| |
|
|
| |
|
|
| |
для: cheops
(25.11.2004 в 18:36)
| | | Уточните пожалуйста, из контекста вашего ответа я понял, что ключи из разных таблиц как раз могут иметь одинаковые значения. | |
| |
|
|
| |
|
|
| |
для: coloboc66
(26.11.2004 в 11:06)
| | | Уникальность ключа обеспечивается следующим образом - СУБД просматривает текущую таблицу и находит максимальное значение первичного ключа, поэтому следующее значение устанавливается равным этому значению плюс единица. Такая операция производится для каждой таблицы, при этом другие таблицы не принимаются во внимание (у них может вообще не быть первичного ключа). Поэтому первичный ключ уникален в пределах одной таблицы, но может совпадать со значениями из других таблиц.
Уникальность первичных ключей в пределах всей базы данных следует обеспечивать самостоятельно - СУБД об этом не заботится. | |
| |
|
|
| |
|
|
| |
для: 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. Выдается ошибка "дублирование ключей". А почему? | |
| |
|
|
| |
|
|
| |
для: coloboc66
(26.11.2004 в 13:26)
| | | А в таблице d уже имеются записи или нет? Может запись с таким ключом уже существует? | |
| |
|
|
| |
|
|
| |
для: cheops
(26.11.2004 в 13:38)
| | | А может быть! Буду уточнять. Пока спасибо! | |
| |
|
|