powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Следующей значение ключа(auto increment)?
25 сообщений из 30, страница 1 из 2
Следующей значение ключа(auto increment)?
    #33095989
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста:
Я выполняю запрос на добавление в таблицу. При этом ключевое поле ID у меня присваивается автоматически.
Вопрос: как узнать значение, которое будет присвоено при выполнении этого запроса.

Спасибо.
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096000
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
узнать, какое будет - сложно. Можно узнать, какое было после вставки.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096004
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
S. FedorenkoВопрос: как узнать значение, которое будет присвоено при выполнении этого запроса.Будет - вам совершенно не нужно. Вам нужно "было"
mysql_insert_id
LAST_INSERT_ID
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096107
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
SHOW TABLE STATUS [FROM db_name] [LIKE wild]
Код: plaintext
1.
2.
3.
...
Auto_increment | Следующее значение автоинкремента.  
...
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096111
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 S. Fedorenko
Посмотрев в ваш профиль, уточняю, что это фича MySQL :)
Поэтому если вы используте другую СУБД, то смотрите мануал.
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096140
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Berkut
Код: plaintext
1.
SHOW TABLE STATUS [FROM db_name] [LIKE wild]
Код: plaintext
1.
2.
3.
...
Auto_increment | Следующее значение автоинкремента.  
...
Зачем даваать ответ, который лишён смысла?
Может объясните, ЗАЧЕМ ЭТО МОЖЕТ БЫТЬ НУЖНО?
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096487
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*Зачем даваать ответ, который лишён смысла?
Может объясните, ЗАЧЕМ ЭТО МОЖЕТ БЫТЬ НУЖНО?
Думаю, что все-таки не лишен.
Если требуется узнать следующее значение автоинкремента, то это можно сделать, выполнив команду SHOW TABLE STATUS; ( тынц ).

Сам я никогда не использовал данную фичу, т.к. надобности не было, но если кому-то это надо - значит надо.
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096494
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
BerkutЕсли требуется узнать следующее значение автоинкремента, то это можно сделать, выполнив команду SHOW TABLE STATUS; ( тынц ).Я повторяю свой вопрос ЗАЧЕМ ЭТО МОЖЕТ БЫТЬ НУЖНО?Сам я никогда не использовал данную фичу, т.к. надобности не было, но если кому-то это надо - значит надо.Позволю себе перефразировать: сам я никогда не прыгал с 100-го этажа на асфальт, но если вам нужно - значит нужно.
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096548
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*Я повторяю свой вопрос ЗАЧЕМ ЭТО МОЖЕТ БЫТЬ НУЖНО
Не знаю :)
*Позволю себе перефразировать: сам я никогда не прыгал с 100-го этажа на асфальт, но если вам нужно - значит нужно.
Без комментариев...
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096639
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Я повторяю свой вопрос ЗАЧЕМ ЭТО МОЖЕТ БЫТЬ НУЖНО?
Например.
Выполняем транзакцию, которая вставляет новую строку с полем автоинкермента в таблицу1, берет LAST_INSERT_ID, вставляет его в таблицу2, которая генерит свой ID. А нужно узнать, что вставлено в таблицу1. mysql_insert_id - возвращает последний сгенерированный auto_increment.
Тогда вариант, предложенный Berkut даже очень уместен.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096665
Dik76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!c

>> Я повторяю свой вопрос ЗАЧЕМ ЭТО МОЖЕТ БЫТЬ НУЖНО?
mc> Например.
mc> Выполняем транзакцию, которая вставляет новую строку с полем
mc> автоинкермента в таблицу1, берет LAST_INSERT_ID, вставляет его в
mc> таблицу2, которая генерит свой ID. А нужно узнать , что вставлено в
mc> таблицу1. mysql_insert_id - возвращает последний сгенерированный
mc> auto_increment. Тогда вариант, предложенный Berkut даже очень уместен.
Зачем это надо узнать?

--
Dik76

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096673
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В реальных условиях это может полезно еще когда в другой сессии происходит добавление новых строк, т.к. в одной сессии
mysql_insert_id()+1 - это уже ни есть значение следующего автоинкремента.
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096685
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
BerkutВ реальных условиях это может полезно еще когда в другой сессии происходит добавление новых строк, т.к. в одной сессии
mysql_insert_id()+1 - это уже ни есть значение следующего автоинкремента.А зачем это знать?Выполняем транзакцию, которая вставляет новую строку с полем автоинкермента в таблицу1, берет LAST_INSERT_ID, вставляет его в таблицу2, которая генерит свой ID. А нужно узнать, что вставлено в таблицу1. mysql_insert_id - возвращает последний сгенерированный auto_increment.Что вам мешает запомнить то, что получилось на первом этапе (вставка в первую таблицу), и использовать это на этапах, следующих после второго?

Дайте реальную задачу, где это нужно. Не высосанную из пальца, а реальную. Где без этого ну никак. И это было бы правильным решением.
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096715
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 *
Если есть связь между таблицами по какому-нить ИД и подчиненная таблица использует этот самый ИД. Дык может потребоваться знание последнего вставленного ИД в первую таблицу.
Повторюсь, дело в том, что это имеет смысл если происходит одновременная вставка в многопользовательской системе.

P.S. Думаю, что когда у вас возникнет необходимость это сделать, вы не будете спрашивать "а зачем?". Просто сделаете и все. :)
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096726
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще мне очень жаль, что я просто теряю свое время...

Если вы не знаете "зачем" - значит вам просто это не надо ИМХО.

Конкретный пример - наполнение "таблиц-справочников".

И в заключении... думаю не просто так разработчики СУБД (не только в MySQL) предусмотрели такую фичу, чтобы был интерфейс для получения "следующего автоинкремента".
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096733
Dik76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Berkut
Повторюсь, дело в том, что это имеет
B> смысл если происходит одновременная вставка в многопользовательской
B> системе.
Тем более не понятно. Откуда вы будете уверены, что последний id в связанной таблице будет тем, что вам нужен? Его легко
может вставить другой пользователь. Что то тут в консерватории не верно.

--
Dik76

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096760
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
BerkutЕсли вы не знаете "зачем" - значит вам просто это не надо ИМХО.Так приведите наконец пример, ГДЕ ЭТО НАДО.Конкретный пример - наполнение "таблиц-справочников".Где всё человечество прекрасно обходится помощью LAST_INSERT_ID.И в заключении... думаю не просто так разработчики СУБД (не только в MySQL) предусмотрели такую фичу, чтобы был интерфейс для получения "следующего автоинкремента".Оно предназначено не для этого. Просто средство диагностики. А в противовес вашему утверждению можно сказать - если бы это кому нибудь было бы нужно, существовала бы команда типа NEXT_INSERT_ID
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096772
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dik76
Berkut
Повторюсь, дело в том, что это имеет
B> смысл если происходит одновременная вставка в многопользовательской
B> системе.
Тем более не понятно. Откуда вы будете уверены, что последний id в связанной таблице будет тем, что вам нужен? Его легко
может вставить другой пользователь. Что то тут в консерватории не верно.

--
Dik76

Posted via ActualForum NNTP Server 1.2
Вот про это я и говорю! Читайте внимательнее: "в одной сессии
mysql_insert_id()+1 - это уже ни есть значение следующего автоинкремента.".

Это уже к вопросу "блокировок по чтению".
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096817
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, флейм...
Предложенные - варианты - это работающие способы получения последнего ID.
Самый верный - это вариант, предложенный господином *. Вариант Berkut тоже имеет право на существование.
[offtop]
Как-то читая тред по железу я прочел тред насчет того, что Резак прожигал диски, только когда играл ВинАМП - посмеялся с этого всего...
Но тут был случай. Был у камрада в гостях. У него оказалась ценная для моей фирмы информация. Слить я мог только на болванку. Но его резак начисто отказывался жечь. Все честно эмулировал, а жечь отказывался... Я вспомнил тот топик и включил винАМП... и резак честно нарезал болванку...
Итог: "Ты суслика видишь? А он есть..." (С) ДМБ.
[offtop]
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096820
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*Так приведите наконец пример, ГДЕ ЭТО НАДО.
Постановка задачи - это хорошая вещь и умение. :)
Если позволите, то позже (сейчас времени нету).

P.S. Если вам так интересно, то спросите у автора топига. Мне тоже будет интересно.
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096960
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
4m@t!cВариант Berkut тоже имеет право на существование.Пример в студию.
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33096965
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
BerkutЕсли вам так интересно, то спросите у автора топига. Мне тоже будет интересно.Он отмалчивается. Собственно, я и пытался, чтобы автор наконец написал, зачем ему это нужно, потому что как только он это сделает - ему покажут, как это нужно делать и с лёгкостью решается при помощи LAST_INSERT_ID.
Боюсь, доводы в пользу необходимости существования NEXT_INSERT_ID не выдержат никакой критики.
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33097297
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот реальный пример, который позволяет определить
значение следующего автоинкремента. Не совсем то,
что я хотел привести, но принцип будет понятен.

Код: plaintext
Создаем простую табличку (все выполняется в одной сессии)
Код: plaintext
1.
2.
3.
4.
create table t1 (
 id int not null auto_increment,
 info varchar( 10 ),
 primary key(id));

Код: plaintext
1.
2.
3.
4.
5.
6.
insert into t1 (info) values ('this is first row');

select last_insert_id();

 1 


Код: plaintext
Теперь делаем многострочную вставку
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
insert into t1 (info)
 select 'this is second row' union all
 select 'this is third row';

-- после вставки
select * from t1

+----+------------+
| id | info       |
+----+------------+
|   3  | this is th |
|   2  | this is se |
|   1  | this is fi |
+----+------------+

select last_insert_id()

 2 

И это верно, т.к.

Для многострочной вставки, LAST_INSERT_ID()/mysql_insert_id() на самом деле
вернут AUTO_INCREMENT значение для первой вставленной записи. Это сделано для
того, чтобы многострочные вставки можно было повторить на других серверах.


Код: plaintext
В то время как значение следующего автоинкремента, выводимое командой SHOW TABLE STATUS
Код: plaintext
1.
2.
3.
4.
5.
6.
show table status;
+---------+--------+---------+------------+--------+----------------+---------------------+---------------------+
| Name    | Engine | Version | Row_format | Rows   | Auto_increment | Create_time         | Update_time         |
+---------+--------+---------+------------+--------+----------------+---------------------+---------------------+
| t1      | MyISAM |        9  | Dynamic    |       3  |               4  |  2005 - 06 - 02   13 : 12 : 59  |  2005 - 06 - 02   13 : 16 : 59  |
+---------+--------+---------+------------+--------+----------------+---------------------+---------------------+

В этом и есть пожалуй главное отличие Last_insert_id() от поля Auto_increment в SHOW TABLE STATUS;

Поэтому в том случае, когда происходят многочисленные вставки и существует связь между таблицами по автоинкрементному полю, то такой вариант вполне уместен ИМХО.

P.S. Предложите решение лучше :)

Код: plaintext
1.
2.
3.
select version();

 4 . 1 . 8 -max
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33097362
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*
А в противовес вашему утверждению можно сказать - если бы это кому нибудь было бы нужно, существовала бы команда типа NEXT_INSERT_ID

Кстати *, например в Oracle такая фича уже есть :)
Код: plaintext
1.
select sequence_name.next from dual;
P.S. Может быть в различных СУБД диапозон решаемых задач отличается? :)
...
Рейтинг: 0 / 0
Следующей значение ключа(auto increment)?
    #33097520
Kioto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по-мойму гест просто самоуверенный мудаг и флеймер канифолящий всем мозги. ну можешь ты обойтись без этой фичи и обходись дальше - СЧАСТЬЯ ТЕБЕ. а РЕАЛЬНЫЙ ПРИМЕР можешь засунуть себе туда, где не светит солнце. когда найдёшь. дятел блин.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Следующей значение ключа(auto increment)?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]