Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Поле auto_incr.. после INSERT (Шемятенков И.В.) 18/04/2002 - 15:35:27
      Re: Поле auto_incr.. после INSERT (Василий) 18/04/2002 - 16:06:31
      Re: Поле auto_incr.. после INSERT (dim-dim) 18/04/2002 - 16:08:37
      Re: Поле auto_incr.. после INSERT (vitek) 18/04/2002 - 16:28:53
      Re: упс. О чём это я? (vitek) 19/04/2002 - 08:34:35
      Re: Поле auto_incr.. после INSERT (aws) 24/04/2002 - 11:38:14
      Re: начни зарабатывать до 3000у.е (вадим) 19/01/2006 - 22:09:49

> Original message text:
> From: Шемятенков И.В. - 18/04/2002 - 15:35:27
> Subject:Поле auto_incr.. после INSERT
> -----------------
> Таблица имеет вид указанный ниже.
> Я сохраняю в таблицу при помощи INSERT новую запись. Мне необходимо узнать QID который будет в созданной записи. Метод записать а потом найти запись с максимальным QID не предлагать, т.к. с базой могут работать 30-50 пользователей одновременно.
>
> CREATE TABLE query (
> QID int(5) unsigned NOT NULL DEFAULT '0' auto_increment,
> pTID int(5) unsigned NOT NULL,
> pQID int(5) unsigned NOT NULL,
> sender int(5) unsigned NOT NULL,
> pMLISTID int(5) unsigned NOT NULL,
> name varchar(100),
> status varchar(10),
> type varchar(1),
> created TIMESTAMP(12),
> control TIMESTAMP(12),
> PRIMARY KEY (QID))")) or die $DBI::errstr;
>
>


From: vitek - 18/04/2002 - 16:28:53
Subject:Поле auto_incr.. после INSERT
-----------------
Обращаю внимание на строки:

> Мне необходимо узнать QID который будет в созданной записи.

В СОЗДАННОЙ ЗАПИСИ!!! Т.е. так понимаю человеку нужно не предположительное значение, а точное. Ведь "с базой могут работать 30-50 пользователей".

А что бужет если он захочет использовать полученное по рекомендуемому вами способу значение в других связанных таблицах? Крах и нарушение целостности?

Тут будет только один правильный способ:
Сначала вставка, и только затем last_insert_id.
Если есть транзакции, то потом можно легко откатиться назад.
А если нет, то Ж8-[] Хотя и тут есть способы решения.

На крайняк конечно можно и LOCK TABLE (2dim-dim). Но 30-50 пользователей одновременно - это может вызвать осложнения, а может и нет. Зависит от многих обстоятельств.




[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
26061



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |