[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как сделать вывод id созданной записи
Happy!
Здравствуйте, столкнулся с такой проблемой, у меня есть таблица, в которой пользователи создает записи (у каждого юзера есть id, и соответственно в таблице есть столбец с id, чтобы записи не путать). Проблема заключается в том что когда пользователь зашел первый раз, создается пустая строка в бд и пользователю надо выдать id который будет сгенерирован по принципу maxid+1. И если одновременно зайдут два пользователя, а я буду брать последний id, то есть вероятность им получить одинаковый id. Как мне создать запись и одновременно выдать значение столбца этой записи? Если есть другие варианты, буду рад слышать.
rooor
mysql_insert_id()
alexbel2404
Или после вставки, можно сделать запрос select last_insert_id()
Happy!
Так это при последнем... а если пользователь 1 создаст запись и одновременно с ним пользователь 2 ее создаст, тогда первому прилетит id второго.
rooor
не вдавался в подробности, но если чисто логически подумать...
параметром функции является link_identifier, т.е. подключение конкретного юзера, именно по этому подключению и будет создана запись в базе, другому пользователю прилетит последний id созданный по другому соединению...
alexbel2404
Нет, вернется последний для текущего подключения к БД.
Happy!
Нашел способ. Можно объединить два запроса при помощи транзакции, и оба запроса будут выполнены как один. На время выполнения по идеи таблица будет заблочена.
Valick
Happy!, не надо бабушку лохматить, читайте мат часть.
В таблице id должно быть auto_increment, и mysql_insert_id() вернет последнюю созданную запись оператора INSERT для текущего соединения с бд. Возможность "перепутать" id исключена механизмом auto_increment на уровне СУРБД.

_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.