29 / 23 / 2
Регистрация: 14.04.2009
Сообщений: 448
1

Как узнать последний вставленный id?

02.09.2009, 19:45. Показов 49258. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я сделал запрос на вставку новой строки. Каким запросом вернуть id последней вставленной записи?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2009, 19:45
Ответы с готовыми решениями:

Мультфильм на Turbo Pascal. Требуется альтернатива cleardevice. Как очистить только последний вставленный кадр?
Возникла проблемка при написании мультфильма на Паскале. Очень надеюсь на Вашу помощь. Дело в том,...

Как узнать последний ID в базе?
здравствуйте. помогите пожалуйста.. У меня данные из регистрационной формы после нажатия кнопки...

Как узнать последний символ строки?
Как узнать последний символ строки? Т.е. то что на паскале я написал бы так: ch:=s;

Как узнать последний элемент List?
Мне нужно чтобы добавлялись к массиву list переменные и я обращался к последней из них но не могу...

3
Почетный модератор
11531 / 4325 / 449
Регистрация: 12.06.2008
Сообщений: 12,427
02.09.2009, 20:44 2
Если через запрос, то
SQL
1
SELECT LAST_INSERT_ID();
Или API функция mysql_insert_id()
0
29 / 23 / 2
Регистрация: 14.04.2009
Сообщений: 448
02.09.2009, 20:56  [ТС] 3
А такой запрос не подойдет? С учетом того, что id автоинкрементируется. И получается, что последний id будет всегда максимальным.
SQL
1
SELECT MAX(`id`) FROM `tab`
Вас запрос покажет последнюю вообще. А мне надо бы именно в определенной таблице.
0
Почетный модератор
11531 / 4325 / 449
Регистрация: 12.06.2008
Сообщений: 12,427
02.09.2009, 22:52 4
Цитата Сообщение от rar14
И получается, что последний id будет всегда максимальным.
Не всегда... на загруженных серверах может получиться, что пока мы выполняем один запрос, сразу же за ним пройдёт ещё один... и получится, что мы узнаем номер не от нашего добавления, а уже от следующего... например
Код
INSERT INTO.....
// а где-то тут другой скрипт или поток добавляет ещё одну запись в таблицу.
SELECT MAX(id)....
Цитата Сообщение от rar14
Вас запрос покажет последнюю вообще. А мне надо бы именно в определенной таблице.
Честно говоря, я им не пользовался... но на сколько я понимаю, он вернёт последний номер, который был добавлен с текущего подключения к серверу MySQL. Т.е. если добавить строку, а потом переподключиться к мусклу, то SELECT LAST_INSERT_ID(); уже не будет срабатывать, т.к. это новое подключение не добавляло никаких строк.

Мда... не умею я объяснять Общий смысл всего что я тут накалякал:
SELECT MAX(`id`) в большинстве случаев будет нормально срабатывать... но иногда может выдавать неправильный результат (если параллельно выполняется ещё один скрипт, который тоже добавляет строку в эту же таблицу).

SELECT LAST_INSERT_ID() должен нормально срабатывать... он возвращает номер именно от последнего запроса, который выполнен этим же подключением к БД. Тоже самое выполняет API функция mysql_insert_id.
2
02.09.2009, 22:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2009, 22:52
Помогаю со студенческими работами здесь

Как узнать последний выбранный пункт в CheckedListBox ?
Не могу понять как можно узнать, какой пункт был выбран для обработки его в SelectedIndexChanged....

Как узнать когда последний раз Яндекс индексировал
подскажите скрипт на сайте или программу с помощью которой можно узнать когда Яндекс последний раз...

Как узнать в ASP при вставке в БД MSSQL последний ID
Нужно вставить в БД данные, там должно быть поле id (auto_increment если в MSSQL оно есть, если...

Как узнать когда пользователь был активен последний раз
Есть программа. Она должна во время своей работы следить, проявляет пользователь активность за...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru