|
|
|
| Помогите разобраться. Пожалуйста
Имею составной 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 значения не имеет, проверял и на более коротких значениях | |
|
|
|
|
|
|
|
для: barba
(15.02.2011 в 14:58)
| | Покажите как индексирована таблица, т.е. как ключ выстроен (быстро посмотреть можно например, при помощи SHOW CREATE TABLE splitsample). | |
|
|
|
|
|
|
|
для: 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))?
Спасибо! | |
|
|
|
|
|
|
|
для: barba
(15.02.2011 в 15:37)
| | У Вас первичный ключ устроен так, что индекс построен только по первым 12 символам поля labn.
Это значит, что помещать записи можно лишь такие, которые при одинаковом id_sample имеют отличающиеся в левых 12 символах labn.
Для добавляемой записи это условие не выполняется. | |
|
|
|