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




MySQL.RU - Webboard



Вернуться
Помогите получить автоинкремент (Vadim) 26/10/2006 - 16:58:03
      Re: Помогите получить автоинкремент (ita) 26/10/2006 - 17:31:14
      Re: Помогите получить автоинкремент (Vadim) 26/10/2006 - 18:15:56
      Re: Помогите получить автоинкремент (WebGirl) 28/10/2006 - 22:31:40
      Re: Помогите получить автоинкремент (Vadim) 30/10/2006 - 10:22:58
      Re: Помогите получить автоинкремент (Vadim) 03/11/2006 - 09:41:42
      Re: Помогите получить автоинкремент (Алексей) 21/10/2008 - 10:03:21

> Original message text:
> From: Vadim - 26/10/2006 - 16:58:03
> Subject:Помогите получить автоинкремент
> -----------------
> При создании новой записи использую триггер BEFOR INSERT, чтобы в скрытом поле записи создавалась ссылка, в которой участвует id создаваемой записи. Однако в момент BEFOR INSERT id записи еще не присвоен, так что пытаюсь получить автоинкремент записи через SELECT LAST_INSERT_ID(), но получаю что-то странное - у меня 19 запись, а он мне выдает 59674. У меня такое подозрение, что етот LAST_INSERT_ID() берет последний автоинкремент из всех работающих таблиц вообще, а не из той конкретно, где триггер срабатывает. Как мне его ткнуть носом, чтоб он из этой таблицы id брал? Триггер такой:
>
> BEGIN
> set @New_id = (SELECT LAST_INSERT_ID())+1;
> ...
> END
>
> Знаю что можно увидеть автоинкремент по
>
> SHOW TABLE STATUS FROM db_name like 'table_name'
>
> но как его оттуда выковырять, чтобы использовать можно было?
>


From: Vadim - 03/11/2006 - 09:41:42
Subject:Помогите получить автоинкремент
-----------------
Всем доброго времени суток!
Хочу сказать, что свою проблемку я решил, хотя и обходным путем. Автоинкремент я так и не получил, поэтому я придумал другое, может не слишком правильное решение, зато работающее. Автоинкремент мне был нужен, чтобы получить id создающейся записи и отправить его в другое место, чтобы потом оттуда можно было однозначно идентифицировать эту запись. Поскольку автоинкремент мне не покорился, я создал в этой таблице еще одно числовое поле 'nom', которое не является автоинкрементным. В триггере BEFOR INSERT я просто присваиваю ему значение max(nom)+1, что однозначно является уникальным значением записи. В принципе наверное можно было и не заводить такое поле и делать тоже самое с полем id, но я решил с ним не извращаться.
P.S. Извиняюсь, что не написал сразу как решил проблемку :)


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

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

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



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