Общие > Базы данных
LAST_INSERT_ID()
Light:
Привет!
Я работаю в MySQL version 3.23.41
Мне необходимо получить идентификатор последней вставленной записи в таблицу.
Я делаю следующее:
create table Test(nid int not null primary key auto_increment, nAgentID int);
insert into Test (nAgentID) values (5); -> получаю запись (1,5)
select last_insert_id();
В результате получаю 0. Почему? Что я сделала неправильно?
Светлана
Chs:
last_insert_id()
1
:))
--- Цитировать ---В результате получаю 0. Почему? Что я сделала неправильно?
--- Конец цитаты ---
Читаем доку:
The last ID that was generated is maintained in the server on a
per-connection basis. It will not be changed by another client.
Делаем логический вывод: SQL запросы выполнялись не в одной сессии(соединении) с сервером.
Light:
--- Цитировать ---Делаем логический вывод: SQL запросы выполнялись не в одной сессии(соединении) с сервером.
--- Конец цитаты ---
Может, я не очень понимаю, что же тогда такое сессия?
Я сейчас сделала следующее:
1. insert into a values(null,87) -> результат (1,87)
2. insert into a values(null,last_insert_ID()) -> результат (2,1)
А потом:
1. insert into a values(null,87) -> результат (3,87)
2. select last_insert_id() -> результат 0.
И что же это получается? В первом случае оба запроса выполнились в одной сессии, а во втором в разных?
Chs:
--- Цитировать ---И что же это получается? В первом случае оба запроса выполнились в одной сессии, а во втором в разных?
--- Конец цитаты ---
Тогда поподробнее - как идет обращение к MySql.
Light:
--- Цитировать ---Тогда поподробнее - как идет обращение к MySql.
--- Конец цитаты ---
У меня стоит MySQL version 2.23.41 под Линукс
Я работаю в Win\'2K в программе MySQLManager
К базе я обращаюсь через MyODBC version 2.50.39
Что еще интересует?
Запросы пишу в редакторе SQL MyManager\'a
Навигация
Перейти к полной версии