![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение id только что вставленной записи [D7, MySQL]
solenko © (2006-03-27 13:06:00)Здравствуйте!
Использую для подключения к MySQL библиотеку ZeosLib.
После вставки данных в табличку мне необходимо получить id вставленной записи. Как это сделать?
Курдль (2006-03-29 16:57:00) [1]
> Id (28.03.06 13:38) [6]
> В одной транзакции
> 1. Insert ...
> 2. Select Max(id) ...
> Мне кажется логично. Или нет?
А мозгом подумать? Если другой юзер в своей транзакции, но в тот же момент, проделает ту же хитрость? Догадайся, какой результат получит тот, кто сделает коммит чуть позже?
Johnmen (2006-03-28 13:44:00) [2]
> Мне кажется логично. Или нет?
Логично. Но неправильно.
Id (2006-03-28 13:38:00) [3]
> solenko © (27.03.06 13:06)
Сталкивался с такой же проблемой.
Так по-моему тоже можно:
В одной транзакции
1. Insert ...
2. Select Max(id) ...
Мне кажется логично. Или нет?
Anatoly Podgoretsky (2006-03-27 15:03:00) [4]Nikolay M. © (27.03.06 13:31) [3]
Кто то говорил, что в справку не посылает :-)
solenko (2006-03-27 13:40:00) [5]Сори. Туплю уже.
Nikolay M. (2006-03-27 13:31:00) [6]А сделать
SELECT LAST_INSERT_ID();
как это описано в документации - религия не позволяет?
solenko (2006-03-27 13:21:00) [7]Эта функция мне известна (в dll-ке звучит как mysql_insert_id), но проблемма в том, что я использую не библиотеку напрямую, а ZeosLib. В исходниках она упоминается, но как получить к ней доступ средствами зеоса я так и не нашел.
Johnmen (2006-03-27 13:15:00) [8]LAST_INSERT_ID
http://www.mysql.ru/docs/man/Miscellaneous_functions.html