|
MySQL.RU - Webboard
Вернуться
Ошибка SQL Error Duplicate entry for key 1 (DrSoft) 25/04/2004 - 12:42:27
Re: потому как (Alec) 26/04/2004 - 13:08:34
Re: потому как (DrSoft) 26/04/2004 - 18:59:10
Re: мало данных (++) (Alec) 27/04/2004 - 09:37:00
Re: мало данных (++) (DrSoft) 27/04/2004 - 13:39:29
Re: убей меня так не бывает (+++) (Alec) 27/04/2004 - 14:18:52
Re: Блин....но глюк остаеться (DrSoft) 28/04/2004 - 13:25:40
Re: Блин....но глюк остаеться (Marat_L) 28/04/2004 - 14:55:25
Re: Блин....но глюк остаеться (DrSoft) 28/04/2004 - 15:21:07
Re: Покажи код (Marat_L) 29/04/2004 - 09:07:47
Re: Покажи код (DrSoft) 29/04/2004 - 12:11:12
Re: Стало понятно (Marat_L) 29/04/2004 - 14:27:16
> Original message text:
> From: DrSoft - 25/04/2004 - 12:42:27
> Subject:Ошибка SQL Error Duplicate entry for key 1
> -----------------
> Может кто встречался с такой проблемой, и с чем она может быть связана подскажите плизз...
>
From: Marat_L - 29/04/2004 - 14:27:16
Subject:Стало понятно
-----------------
Вот теперь я думаю все ясно.
Для 100% уверенности не хватает
1) "show cheate table "
2) У тебя сервер на linux или win?
Если linux то freedok и FREEDOK - разные таблицы (еще одна возможная ляпа).
Итак:
В твоей таблице есть автоинкрементальное поле, которое ты сказал не указываешь в INSERT. И оно считается скорее всего правильно.
Проблема с полем iddog, которое скорее всего объявлено уникальным, которое вводится вручную, и которое ты вставляешь явно.
Будучи не силен в твоем языке программирования (Delphi?) я полагаю что код правильный. Касаясь только логики предлагаю следующие варианты:
1)сделать таблицу FREEDOK типа InnoDB
begin
select count(iddog) as recd from freedok where iddog=(:p_1) FOR UPDATE
#после этого ни одна сволочь не сможет вставить чтонибудь с таким ключом
Ну и далее если неудача
rollback
Иначе
insert into ....
commit
2) Не разрешать пользователям изменять то, что должно быть уникальным и контролируется системой. Например использовать для этого тот же инкрементный ключ :)
Я бы сделал нарпимер EditNdog.Enabled:=false; (ну или типа такого)
3) Сделать у разных пользователей номера документов принципиально-непересекаемыми. Например номер+литера
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
14374
|
|