matross
auto_increment добавляет единицу не к максимальному на данный момент значению поля, а к счетчику прикрепленному к полю. Можно заполнить 10 рядов (INSERT), затем удалить их, и сделать INSERT, поле будет равно 11.
matross никаких гарантий что за это время в таблицу не будет выполенен INSERT. Даже наоборот в большинстве случаев именно таки и будет и попытка вставки с ключом равным mysql_insert_id()+1 вернет duplicate error.
Все это есть если внимательно просмотреть топики по ссылке приведенной tony2001 поэтому вместо гадания лучше читайте.
-~{}~ 23.12.05 02:35:
Автор оригинала: betik
А mysql_insert_id() разве не вернёт "11"?
Автор оригинала: .des.
matross никаких гарантий что за это время в таблицу не будет выполенен INSERT. Даже наоборот в большинстве случаев именно таки и будет и попытка вставки с ключом равным mysql_insert_id()+1 вернет duplicate error.
Все это есть если внимательно просмотреть топики по ссылке приведенной tony2001 поэтому вместо гадания лучше читайте.
-~{}~ 23.12.05 02:35:
именно, только при попытке вставки mysql_insert_id() +1, то есть 12 будет сюрприз %)
ИМХО при постановке задачи как у тред стартера Mysql_insert_id()++ самое то. Вывести требуется не минимально е доступное значение автоинкриментного поля на текущий момент времени, а СЛЕДУЩЕЕ за вставленным (insert), вне зависимости от того было ли оно уже вставлено или нет. Единственным косым моментом мне кажется отработка insert+delete...
betik тредстартеры в этом форуме в большинстве случаев не знают чего хотят. Поэтому давать им потенциально опасные советы очень не рекомендуется. Такого наворотят %)
NaZq читайте тред еще раз. Вы выведете число mysql_insert_id()+1, но то что вы сможете добавить запись с этим ключом не гарантируется.
Нужно объяснять почему?
Видимо алгоритм таков:
Блокировка на запись в таблицу средствами скрипта, например передача ключа разблокировки.
select LAST_INSERT_ID() from table;
Вывод полученной переменной +1;
Запись в таблицу.
Разблокировка.
При этом все скрипты которые не знают о алгоритме и правилах блокировки - помешают работе знающих.
/*
You can find the value used for an AUTO_INCREMENT column by using the LAST_INSERT_ID() function.
*/