Forum Webscript.Ru
Общие => Базы данных => Тема начата: Light от 14 Марта 2002, 11:49:37
-
Привет!
Я работаю в 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. Почему? Что я сделала неправильно?
Светлана
-
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 запросы выполнялись не в одной сессии(соединении) с сервером.
-
Делаем логический вывод: 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.
И что же это получается? В первом случае оба запроса выполнились в одной сессии, а во втором в разных?
-
И что же это получается? В первом случае оба запроса выполнились в одной сессии, а во втором в разных?
Тогда поподробнее - как идет обращение к MySql.
-
Тогда поподробнее - как идет обращение к MySql.
У меня стоит MySQL version 2.23.41 под Линукс
Я работаю в Win\'2K в программе MySQLManager
К базе я обращаюсь через MyODBC version 2.50.39
Что еще интересует?
Запросы пишу в редакторе SQL MyManager\'a
-
lock таблица write
после получения результата - анлок
-
Ок, спасибо