|
|
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста: Я выполняю запрос на добавление в таблицу. При этом ключевое поле ID у меня присваивается автоматически. Вопрос: как узнать значение, которое будет присвоено при выполнении этого запроса. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 20:31 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
узнать, какое будет - сложно. Можно узнать, какое было после вставки. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 20:49 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
S. FedorenkoВопрос: как узнать значение, которое будет присвоено при выполнении этого запроса.Будет - вам совершенно не нужно. Вам нужно "было" mysql_insert_id LAST_INSERT_ID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 20:54 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 22:44 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
2 S. Fedorenko Посмотрев в ваш профиль, уточняю, что это фича MySQL :) Поэтому если вы используте другую СУБД, то смотрите мануал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 22:48 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
Berkut Код: plaintext 1. Код: plaintext 1. 2. 3. Может объясните, ЗАЧЕМ ЭТО МОЖЕТ БЫТЬ НУЖНО? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2005, 23:14 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
*Зачем даваать ответ, который лишён смысла? Может объясните, ЗАЧЕМ ЭТО МОЖЕТ БЫТЬ НУЖНО? Думаю, что все-таки не лишен. Если требуется узнать следующее значение автоинкремента, то это можно сделать, выполнив команду SHOW TABLE STATUS; ( тынц ). Сам я никогда не использовал данную фичу, т.к. надобности не было, но если кому-то это надо - значит надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 09:54 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
BerkutЕсли требуется узнать следующее значение автоинкремента, то это можно сделать, выполнив команду SHOW TABLE STATUS; ( тынц ).Я повторяю свой вопрос ЗАЧЕМ ЭТО МОЖЕТ БЫТЬ НУЖНО?Сам я никогда не использовал данную фичу, т.к. надобности не было, но если кому-то это надо - значит надо.Позволю себе перефразировать: сам я никогда не прыгал с 100-го этажа на асфальт, но если вам нужно - значит нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 09:58 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
*Я повторяю свой вопрос ЗАЧЕМ ЭТО МОЖЕТ БЫТЬ НУЖНО Не знаю :) *Позволю себе перефразировать: сам я никогда не прыгал с 100-го этажа на асфальт, но если вам нужно - значит нужно. Без комментариев... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 10:18 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
>Я повторяю свой вопрос ЗАЧЕМ ЭТО МОЖЕТ БЫТЬ НУЖНО? Например. Выполняем транзакцию, которая вставляет новую строку с полем автоинкермента в таблицу1, берет LAST_INSERT_ID, вставляет его в таблицу2, которая генерит свой ID. А нужно узнать, что вставлено в таблицу1. mysql_insert_id - возвращает последний сгенерированный auto_increment. Тогда вариант, предложенный Berkut даже очень уместен. ---------------------------------------- Артисты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 10:47 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 10:53 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
В реальных условиях это может полезно еще когда в другой сессии происходит добавление новых строк, т.к. в одной сессии mysql_insert_id()+1 - это уже ни есть значение следующего автоинкремента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 10:55 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
BerkutВ реальных условиях это может полезно еще когда в другой сессии происходит добавление новых строк, т.к. в одной сессии mysql_insert_id()+1 - это уже ни есть значение следующего автоинкремента.А зачем это знать?Выполняем транзакцию, которая вставляет новую строку с полем автоинкермента в таблицу1, берет LAST_INSERT_ID, вставляет его в таблицу2, которая генерит свой ID. А нужно узнать, что вставлено в таблицу1. mysql_insert_id - возвращает последний сгенерированный auto_increment.Что вам мешает запомнить то, что получилось на первом этапе (вставка в первую таблицу), и использовать это на этапах, следующих после второго? Дайте реальную задачу, где это нужно. Не высосанную из пальца, а реальную. Где без этого ну никак. И это было бы правильным решением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 11:00 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
2 * Если есть связь между таблицами по какому-нить ИД и подчиненная таблица использует этот самый ИД. Дык может потребоваться знание последнего вставленного ИД в первую таблицу. Повторюсь, дело в том, что это имеет смысл если происходит одновременная вставка в многопользовательской системе. P.S. Думаю, что когда у вас возникнет необходимость это сделать, вы не будете спрашивать "а зачем?". Просто сделаете и все. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 11:10 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
Вообще мне очень жаль, что я просто теряю свое время... Если вы не знаете "зачем" - значит вам просто это не надо ИМХО. Конкретный пример - наполнение "таблиц-справочников". И в заключении... думаю не просто так разработчики СУБД (не только в MySQL) предусмотрели такую фичу, чтобы был интерфейс для получения "следующего автоинкремента". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 11:15 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
Berkut Повторюсь, дело в том, что это имеет B> смысл если происходит одновременная вставка в многопользовательской B> системе. Тем более не понятно. Откуда вы будете уверены, что последний id в связанной таблице будет тем, что вам нужен? Его легко может вставить другой пользователь. Что то тут в консерватории не верно. -- Dik76 Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 11:18 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
BerkutЕсли вы не знаете "зачем" - значит вам просто это не надо ИМХО.Так приведите наконец пример, ГДЕ ЭТО НАДО.Конкретный пример - наполнение "таблиц-справочников".Где всё человечество прекрасно обходится помощью LAST_INSERT_ID.И в заключении... думаю не просто так разработчики СУБД (не только в MySQL) предусмотрели такую фичу, чтобы был интерфейс для получения "следующего автоинкремента".Оно предназначено не для этого. Просто средство диагностики. А в противовес вашему утверждению можно сказать - если бы это кому нибудь было бы нужно, существовала бы команда типа NEXT_INSERT_ID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 11:27 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
Dik76 Berkut Повторюсь, дело в том, что это имеет B> смысл если происходит одновременная вставка в многопользовательской B> системе. Тем более не понятно. Откуда вы будете уверены, что последний id в связанной таблице будет тем, что вам нужен? Его легко может вставить другой пользователь. Что то тут в консерватории не верно. -- Dik76 Posted via ActualForum NNTP Server 1.2 Вот про это я и говорю! Читайте внимательнее: "в одной сессии mysql_insert_id()+1 - это уже ни есть значение следующего автоинкремента.". Это уже к вопросу "блокировок по чтению". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 11:30 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
ИМХО, флейм... Предложенные - варианты - это работающие способы получения последнего ID. Самый верный - это вариант, предложенный господином *. Вариант Berkut тоже имеет право на существование. [offtop] Как-то читая тред по железу я прочел тред насчет того, что Резак прожигал диски, только когда играл ВинАМП - посмеялся с этого всего... Но тут был случай. Был у камрада в гостях. У него оказалась ценная для моей фирмы информация. Слить я мог только на болванку. Но его резак начисто отказывался жечь. Все честно эмулировал, а жечь отказывался... Я вспомнил тот топик и включил винАМП... и резак честно нарезал болванку... Итог: "Ты суслика видишь? А он есть..." (С) ДМБ. [offtop] ---------------------------------------- Артисты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 11:45 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
*Так приведите наконец пример, ГДЕ ЭТО НАДО. Постановка задачи - это хорошая вещь и умение. :) Если позволите, то позже (сейчас времени нету). P.S. Если вам так интересно, то спросите у автора топига. Мне тоже будет интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 11:45 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
4m@t!cВариант Berkut тоже имеет право на существование.Пример в студию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 12:20 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
BerkutЕсли вам так интересно, то спросите у автора топига. Мне тоже будет интересно.Он отмалчивается. Собственно, я и пытался, чтобы автор наконец написал, зачем ему это нужно, потому что как только он это сделает - ему покажут, как это нужно делать и с лёгкостью решается при помощи LAST_INSERT_ID. Боюсь, доводы в пользу необходимости существования NEXT_INSERT_ID не выдержат никакой критики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 12:22 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
Вот реальный пример, который позволяет определить значение следующего автоинкремента. Не совсем то, что я хотел привести, но принцип будет понятен. Код: plaintext Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. И это верно, т.к. Для многострочной вставки, LAST_INSERT_ID()/mysql_insert_id() на самом деле вернут AUTO_INCREMENT значение для первой вставленной записи. Это сделано для того, чтобы многострочные вставки можно было повторить на других серверах. Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. В этом и есть пожалуй главное отличие Last_insert_id() от поля Auto_increment в SHOW TABLE STATUS; Поэтому в том случае, когда происходят многочисленные вставки и существует связь между таблицами по автоинкрементному полю, то такой вариант вполне уместен ИМХО. P.S. Предложите решение лучше :) Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 13:58 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
* А в противовес вашему утверждению можно сказать - если бы это кому нибудь было бы нужно, существовала бы команда типа NEXT_INSERT_ID Кстати *, например в Oracle такая фича уже есть :) Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 14:13 |
|
||
|
Следующей значение ключа(auto increment)?
|
|||
|---|---|---|---|
|
#18+
по-мойму гест просто самоуверенный мудаг и флеймер канифолящий всем мозги. ну можешь ты обойтись без этой фичи и обходись дальше - СЧАСТЬЯ ТЕБЕ. а РЕАЛЬНЫЙ ПРИМЕР можешь засунуть себе туда, где не светит солнце. когда найдёшь. дятел блин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 14:51 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=33096715&tid=1478162]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
148ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 214ms |
| total: | 475ms |

| 0 / 0 |
