Автор Тема: Следующее значение Автоинкремента  (Прочитано 6409 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Metaller

  • Мелкое злобное существо
  • Ветеран
  • *****
  • Сообщений: 538
  • +0/-0
  • 2
    • Просмотр профиля
    • http://michael.pp.ru
Следующее значение Автоинкремента
« : 29 Августа 2002, 13:02:40 »
Че то я тормоззю. Можно ведь как-то узнать какое значение примет автоинкремент при следующем инсерте? :confused:
Как енто сделать?
Everybody\'s Got A Ticket To Ride Except For Me And My Lightning...

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Следующее значение Автоинкремента
« Ответ #1 : 29 Августа 2002, 13:14:32 »
залочить таблицу, считать максимальное существующее значение, прибавить единицу, разлочить таблицу.

Но это не покатит если ты используешь таблицы MyISAM или InnoDB и из таблицы уже удалялась запись с максимальным автоинскрементом.
На Машине Тьюринга далеко не уедешь.

Оффлайн Metaller

  • Мелкое злобное существо
  • Ветеран
  • *****
  • Сообщений: 538
  • +0/-0
  • 2
    • Просмотр профиля
    • http://michael.pp.ru
Следующее значение Автоинкремента
« Ответ #2 : 29 Августа 2002, 13:17:45 »
Цитировать
залочить таблицу, считать максимальное существующее значение, прибавить единицу, разлочить таблицу.

До этого я и сам додумался.... Но вот это:
Цитировать
Но это не покатит если ты используешь таблицы MyISAM или InnoDB и из таблицы уже удалялась запись с максимальным автоинскрементом.

вполне возможно. :-(
Следовательно не подходит :-(((
Everybody\'s Got A Ticket To Ride Except For Me And My Lightning...

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Следующее значение Автоинкремента
« Ответ #3 : 29 Августа 2002, 13:21:43 »
Metaller
а зачем тебе это нужно???
На Машине Тьюринга далеко не уедешь.

Оффлайн Metaller

  • Мелкое злобное существо
  • Ветеран
  • *****
  • Сообщений: 538
  • +0/-0
  • 2
    • Просмотр профиля
    • http://michael.pp.ru
Следующее значение Автоинкремента
« Ответ #4 : 29 Августа 2002, 13:23:18 »
Да так...
я уже по другому сделал.. но теперь уже интересно чисто в познавательных целях :-)
Everybody\'s Got A Ticket To Ride Except For Me And My Lightning...

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
Следующее значение Автоинкремента
« Ответ #5 : 29 Августа 2002, 13:39:13 »
Не знаю, как где, но в PHP точно была функция, которая возвращала последнее значение автоинкремента.
Мануала под рукой нет, а то бы по имени назвал.
•••Jah\'d never let us down!•••

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Следующее значение Автоинкремента
« Ответ #6 : 29 Августа 2002, 13:42:13 »
Все это бред.
Никогда при нормальной организации данных, не нужно знать следующий id.

Оффлайн Metaller

  • Мелкое злобное существо
  • Ветеран
  • *****
  • Сообщений: 538
  • +0/-0
  • 2
    • Просмотр профиля
    • http://michael.pp.ru
Следующее значение Автоинкремента
« Ответ #7 : 29 Августа 2002, 13:42:15 »
Наверное, ты имеешь в виду mysql_insert_id. Мне кажется, это не совсем то, что нужно....
Everybody\'s Got A Ticket To Ride Except For Me And My Lightning...

Оффлайн Metaller

  • Мелкое злобное существо
  • Ветеран
  • *****
  • Сообщений: 538
  • +0/-0
  • 2
    • Просмотр профиля
    • http://michael.pp.ru
Следующее значение Автоинкремента
« Ответ #8 : 29 Августа 2002, 13:44:59 »
RomikChef
От тебя, начальник, я другого ответа и не ожидал :) :) :)
Everybody\'s Got A Ticket To Ride Except For Me And My Lightning...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Следующее значение Автоинкремента
« Ответ #9 : 29 Августа 2002, 13:51:54 »
А я от тебя наоборот - ожидал, что ты расскажешь свою постановку задачи, чтобы объяснить тебе, где ты в принципе не прав.
Впрочем, мне не жалко - так и ходи темнотой.

Оффлайн Metaller

  • Мелкое злобное существо
  • Ветеран
  • *****
  • Сообщений: 538
  • +0/-0
  • 2
    • Просмотр профиля
    • http://michael.pp.ru
Следующее значение Автоинкремента
« Ответ #10 : 29 Августа 2002, 14:03:10 »
Эх, рома, рома, любишь ты опускать людей... :-))))
Я и сам знаю, где я и не прав был. И если ты внимательно почитаешь тред, то увидишь, что интересуюсь любопытства ради. Если ты слишком занятой для того, чтобы отвечать на такие вопросы, зачем вообще постишь?

Хотя это оффтопик и у меня нет желание разводить тут срач. Закрывай тему, Непоседа. :)
Everybody\'s Got A Ticket To Ride Except For Me And My Lightning...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Следующее значение Автоинкремента
« Ответ #11 : 29 Августа 2002, 14:41:15 »
С нуля я никогда не наезжаю и уж тем более - не опускаю.
fidget тебя спросила - зачем.
Ты проигнорировал.
Т.е. сам уже осознал глупость своего вопроса. Но нам не сказал.

Чтобы не было кривотолков и разночтений, я подвел итог, в своейственной себе безапелляционной манере, чтобы-таки спровоцировать автора на объяснения.
Ну не люблю я, когда спрашивающий игнорирует вопросы отвечающих. Неуважительно это. Зачем заставлять специалиста (допустим, не меня, а fidget) отвечать на вопрос, который он считает абсурдным?
Да, я сужу по себе. Если я не прав, то я об этом сообщаю. То есть, раз ты не написал, что понял ошибку - значит я вправе думать, что ты ничего так и не понял. Отсюда и резкость.

А "темнота" - это всего лишь аллаверды "начальнику".

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Следующее значение Автоинкремента
« Ответ #12 : 29 Августа 2002, 14:43:11 »
А любопытство здесь не при чем. Потому, как вопрос подразумевает незнание фундаментальных основ. id лишь внешне похож на число и лишь для удобства является автоинкрементным. А по сути - это уникальный идентификатор. и имеет он сымсл только в приложении к данным. Как подойник только в приложении к корове.

От незнания и идут все эти попытки упорядочить id, дропнуть это поле, и так далее.

Оффлайн Metaller

  • Мелкое злобное существо
  • Ветеран
  • *****
  • Сообщений: 538
  • +0/-0
  • 2
    • Просмотр профиля
    • http://michael.pp.ru
Следующее значение Автоинкремента
« Ответ #13 : 29 Августа 2002, 15:17:41 »
Большое спасибо.
Мессага получилась длинная, сорри. Кому лень - не читайте.


Цитировать
Ты проигнорировал.

Я не проигнорировал.
Цитировать
Зачем заставлять специалиста (допустим, не меня, а fidget) отвечать на вопрос, который он считает абсурдным?

Я никого не заставлял. Я спросил. Кто захотел ответить, тот ответил. Кто не захотел - нет. Я кого-то принуждал?
Цитировать
что понял ошибку

Причем здесь ошибка???
Цитировать
А "темнота" - это всего лишь аллаверды "начальнику"

"Начальник" это был вольный перевод второй части твоего ника.
Цитировать
От незнания и идут

Я, в общем, никогда не говорил, что я всезнающий и всеумеющий. А лишний раз говорить человеку, что он лох - это по меньшей мере невежливо, даже если служит благим целям.
Цитировать
по сути - это уникальный идентификатор

Но ведь он же как-то высчитывается при инсерте. Или я не прав. И высчитывается он не на основе той "коровы" которую я указываю в качестве данных.

КСТАТИ: Только что умный товарищ Alien, который не выпендривается на форуме и не строит из себя самого умного всезнайку, и уж тем более ни на кого не наезжает за глупый(???) вопрос, сказал, как это можно сделать. Если ты не знаешь, как это сделать и тебе неохота разбираться - не пиши в тред!
Делается элементарно:
show table status like \'ИМЯ ТАБЛИЦЫ\'.
На выходе получаем массив, один из членов которого (Auto_increment), содержит следующее значение счетчика.
Спасибо, Юра!

Цитировать
чтобы-таки спровоцировать автора на объяснения

Ну, пришел мне для моей задачи в голову сначала вариант решения который требовал закачать файл на сервер с именем ИД, а после этого спросить у пользователя некоторую инфу и занести это в базу. ИД, соответственно той записи, которая заносится после загрузки файла. Я задал вопрос - получил в ответ на него необоснованные утверждения о моем ламерстве. Спасибо. К этому времени я понял, что это извращенный способ - и написал все по другому гораздо проще. Но вопрос-то остался. Разве не может меня что-то интересовать уже не в рамках решаемой задачи? От тебя я получил только заряд плохого настроения.

Так в чем же моя ошибка?!
Everybody\'s Got A Ticket To Ride Except For Me And My Lightning...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Следующее значение Автоинкремента
« Ответ #14 : 29 Августа 2002, 15:36:38 »
Еще раз.
Твоя ошибка в том, что ты не понимаешь принцип функционирования баз данных.
И товарищ алиен, вместо того, чтобы объяснить тебе принципиальное заблуждение, радостно стал подсказывать.

Вообще такая услужливость меня умиляет. Она сродни такой, что вместо того, чтобы уговорить не вешаться - наоборот, услужливо затянуть узелок на веревке. "А чо? А я ничо. Человек попросил, а мне жалоко что ли?".

Обвинения в ламерстве - не необоснованные. Ламер - это  чайник, который при этом считает свое мнение единственно правильным, и игнорирует и наводящие вопросы и попытки объяснить

Ты понял только, что лишь частный случай является "извращенным". А дело в том, что само представление о базах данных, которое тебя привело к такому решению, является неправильным.

Суть в том, что база - это черный ящик. С некоторыми свойствами. И с отсутствием некоторых. Например, у нее нет внутреннего порядка данных.
Накидывать можно как угодно, а упорядочивание производится при выводе.
Это очень удобно.
Не надо думать ни о номерах, ни о месте в списке, ни об очередности, но о конкурентной работе, ни о проблемах, которые возникнут, если ты сейчас, ради сиюминутных выгод пошел против принципов, а потом обстоятельства изменились.

Интересовать тебя не в рамках задачи, конечно, может. Но точно так же я имею прав указать на абсурдность твоего вопроса..

Вот давай, я ради интереса, буду спрашивать - сколько можно просидеть на облаке, пока не устанешь? вот из чистого любопытства. мне интересно. Нет, я уже не хочу на нем сидеть, но ты ответь! И не увиливай, отвечай на поставленный вопрос. А если не знаешь - то сиди и молчи в тряпочку, понял???

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28