GvOzD Я надеюсь, что не будет таких случаев, что два пользователя одновременно запросят выполнения скрипта и при этом им выдаст одинаковые айдишники?
Kreker, или одинаковые выдаст, или если запросы по времени перекрестятся - попадут успеет выдать новый ID раньше чем тот его вставит... можно кнешна TABLE LOCK делать, но... это не верно в корне, как уже говорилось.
Ну если автору темы так уж нужно узнать, какой id получит запись (присоединяюсь ко всем, кто решительно осуждает такие решения, но вдруг сумею помочь автору сдвинуться с мёртвой точки -- если он иначе не может реализовать поставленную перед ним задачу). Вставляешь запись (произвольшую), получаешь её ID -- а потом редактируешь эту запись во славу Господню. Если программа решает, что такая запись на самом деле не нужна -- удаляешь её. Извращение, конечно. Но решает задачу, которую нам подкинул автор темы. Лирическое отступление. Почему всем новичкам так необходимы хитроумные операции с ID? Особенно умиляют попытки создать СВОЙ алгоритм установки ID. Тут в первую очередь приходит на ум таймстемп. Когда сталкиваются, что таймстемпы запросов могут совпасть -- придумывают случайные числа. Та как и они могут совпасть, перед вставкой проводят проверку... Люди добрые, зачем????????????????
у меня тоже вопрос по ID и auto incriment есть таблица ID|content поле ID - auto_incriment некоторые записи удалялись, поэтому таблица имеет вид типа 1|aa 2|bb 4|cc 6|dd как "заполнить" дыры. В данном случае 5 и 3.
Никак. Не в том смысле, что этого сделать нельзя. Можно. update таблица set id=4 where id=5 и все дела. Я хочу сказать, что не надо этого делать по ряду веских причин. Если у тебя какая-то нумерация должна идти без дыр -- создай для неё отдельное поле.
update отпадает. Там id связан с другой таблицей. А вообще сделать можно. Вот только я задумался: нужно ли?
Мне кажется, что многие так страшно боятся "потерять" свои строки в БД. Только я вот, например, не представляю такого случая, когда id (индексная колонка в таблице), ОБЯЗАТЕЛЬНО, должна быть неразрывной. Может кто придумает?
В таком случае есть надежда сэкономить усилия на ведение поля нумерации -- которая согласно желанию заказчика должна быть неразрывной. Журнал счетов и т.п.