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

Форум MySQL

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

 

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

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

тема: Duplicate entry 'бла-бла-бла' for key 1
 
 автор: barba   (15.02.2011 в 14:58)   письмо автору
 
 

Помогите разобраться. Пожалуйста
Имею составной primary key (id, №)
№ - тип данных char(16)
При попытке внести в базу № длинее 14 генерирует ошибку как в заголовке.
например:
insert into splitsample(id_, №) values('к112-122-000', '177-6151/717-21')

проблем не возникает, а
insert into splitsample(id_sample, labn) values('к112-122-000', '177-6151/717-20')

вызывает ошибку Duplicate entry 'к112-122-000', '177-6151/717' for key 1
длина поля id значения не имеет, проверял и на более коротких значениях

  Ответить  
 
 автор: cheops   (15.02.2011 в 15:30)   письмо автору
 
   для: barba   (15.02.2011 в 14:58)
 

Покажите как индексирована таблица, т.е. как ключ выстроен (быстро посмотреть можно например, при помощи SHOW CREATE TABLE splitsample).

  Ответить  
 
 автор: barba   (15.02.2011 в 15:37)   письмо автору
 
   для: cheops   (15.02.2011 в 15:30)
 

CREATE TABLE `splitsample` (
`id_sample` char(15) NOT NULL,
`sampletype` char(6) default NULL,
`labn` char(16) NOT NULL default '',
PRIMARY KEY (`id_sample`,`labn`(12)),
KEY `id_s` (`id_sample`),
) ENGINE=MyISAM DEFAULT CHARSET=cp1251
Я так понял дело в том, что у меня `labn` char(16), а PRIMARY KEY (`...labn`(12))?
Спасибо!

  Ответить  
 
 автор: Trianon   (15.02.2011 в 16:27)   письмо автору
 
   для: barba   (15.02.2011 в 15:37)
 

У Вас первичный ключ устроен так, что индекс построен только по первым 12 символам поля labn.

Это значит, что помещать записи можно лишь такие, которые при одинаковом id_sample имеют отличающиеся в левых 12 символах labn.
Для добавляемой записи это условие не выполняется.

  Ответить  
Rambler's Top100
вверх

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