Forum Webscript.Ru
Общие => Базы данных => Тема начата: Metaller от 29 Августа 2002, 13:02:40
-
Че то я тормоззю. Можно ведь как-то узнать какое значение примет автоинкремент при следующем инсерте? :confused:
Как енто сделать?
-
залочить таблицу, считать максимальное существующее значение, прибавить единицу, разлочить таблицу.
Но это не покатит если ты используешь таблицы MyISAM или InnoDB и из таблицы уже удалялась запись с максимальным автоинскрементом.
-
залочить таблицу, считать максимальное существующее значение, прибавить единицу, разлочить таблицу.
До этого я и сам додумался.... Но вот это:
Но это не покатит если ты используешь таблицы MyISAM или InnoDB и из таблицы уже удалялась запись с максимальным автоинскрементом.
вполне возможно. :-(
Следовательно не подходит :-(((
-
Metaller
а зачем тебе это нужно???
-
Да так...
я уже по другому сделал.. но теперь уже интересно чисто в познавательных целях :-)
-
Не знаю, как где, но в PHP точно была функция, которая возвращала последнее значение автоинкремента.
Мануала под рукой нет, а то бы по имени назвал.
-
Все это бред.
Никогда при нормальной организации данных, не нужно знать следующий id.
-
Наверное, ты имеешь в виду mysql_insert_id. Мне кажется, это не совсем то, что нужно....
-
RomikChef
От тебя, начальник, я другого ответа и не ожидал :) :) :)
-
А я от тебя наоборот - ожидал, что ты расскажешь свою постановку задачи, чтобы объяснить тебе, где ты в принципе не прав.
Впрочем, мне не жалко - так и ходи темнотой.
-
Эх, рома, рома, любишь ты опускать людей... :-))))
Я и сам знаю, где я и не прав был. И если ты внимательно почитаешь тред, то увидишь, что интересуюсь любопытства ради. Если ты слишком занятой для того, чтобы отвечать на такие вопросы, зачем вообще постишь?
Хотя это оффтопик и у меня нет желание разводить тут срач. Закрывай тему, Непоседа. :)
-
С нуля я никогда не наезжаю и уж тем более - не опускаю.
fidget тебя спросила - зачем.
Ты проигнорировал.
Т.е. сам уже осознал глупость своего вопроса. Но нам не сказал.
Чтобы не было кривотолков и разночтений, я подвел итог, в своейственной себе безапелляционной манере, чтобы-таки спровоцировать автора на объяснения.
Ну не люблю я, когда спрашивающий игнорирует вопросы отвечающих. Неуважительно это. Зачем заставлять специалиста (допустим, не меня, а fidget) отвечать на вопрос, который он считает абсурдным?
Да, я сужу по себе. Если я не прав, то я об этом сообщаю. То есть, раз ты не написал, что понял ошибку - значит я вправе думать, что ты ничего так и не понял. Отсюда и резкость.
А "темнота" - это всего лишь аллаверды "начальнику".
-
А любопытство здесь не при чем. Потому, как вопрос подразумевает незнание фундаментальных основ. id лишь внешне похож на число и лишь для удобства является автоинкрементным. А по сути - это уникальный идентификатор. и имеет он сымсл только в приложении к данным. Как подойник только в приложении к корове.
От незнания и идут все эти попытки упорядочить id, дропнуть это поле, и так далее.
-
Большое спасибо.
Мессага получилась длинная, сорри. Кому лень - не читайте.
Ты проигнорировал.
Я не проигнорировал.
Зачем заставлять специалиста (допустим, не меня, а fidget) отвечать на вопрос, который он считает абсурдным?
Я никого не заставлял. Я спросил. Кто захотел ответить, тот ответил. Кто не захотел - нет. Я кого-то принуждал?
что понял ошибку
Причем здесь ошибка???
А "темнота" - это всего лишь аллаверды "начальнику"
"Начальник" это был вольный перевод второй части твоего ника.
От незнания и идут
Я, в общем, никогда не говорил, что я всезнающий и всеумеющий. А лишний раз говорить человеку, что он лох - это по меньшей мере невежливо, даже если служит благим целям.
по сути - это уникальный идентификатор
Но ведь он же как-то высчитывается при инсерте. Или я не прав. И высчитывается он не на основе той "коровы" которую я указываю в качестве данных.
КСТАТИ: Только что умный товарищ Alien, который не выпендривается на форуме и не строит из себя самого умного всезнайку, и уж тем более ни на кого не наезжает за глупый(???) вопрос, сказал, как это можно сделать. Если ты не знаешь, как это сделать и тебе неохота разбираться - не пиши в тред!
Делается элементарно:
show table status like \'ИМЯ ТАБЛИЦЫ\'.
На выходе получаем массив, один из членов которого (Auto_increment), содержит следующее значение счетчика.
Спасибо, Юра!
чтобы-таки спровоцировать автора на объяснения
Ну, пришел мне для моей задачи в голову сначала вариант решения который требовал закачать файл на сервер с именем ИД, а после этого спросить у пользователя некоторую инфу и занести это в базу. ИД, соответственно той записи, которая заносится после загрузки файла. Я задал вопрос - получил в ответ на него необоснованные утверждения о моем ламерстве. Спасибо. К этому времени я понял, что это извращенный способ - и написал все по другому гораздо проще. Но вопрос-то остался. Разве не может меня что-то интересовать уже не в рамках решаемой задачи? От тебя я получил только заряд плохого настроения.
Так в чем же моя ошибка?!
-
Еще раз.
Твоя ошибка в том, что ты не понимаешь принцип функционирования баз данных.
И товарищ алиен, вместо того, чтобы объяснить тебе принципиальное заблуждение, радостно стал подсказывать.
Вообще такая услужливость меня умиляет. Она сродни такой, что вместо того, чтобы уговорить не вешаться - наоборот, услужливо затянуть узелок на веревке. "А чо? А я ничо. Человек попросил, а мне жалоко что ли?".
Обвинения в ламерстве - не необоснованные. Ламер - это чайник, который при этом считает свое мнение единственно правильным, и игнорирует и наводящие вопросы и попытки объяснить
Ты понял только, что лишь частный случай является "извращенным". А дело в том, что само представление о базах данных, которое тебя привело к такому решению, является неправильным.
Суть в том, что база - это черный ящик. С некоторыми свойствами. И с отсутствием некоторых. Например, у нее нет внутреннего порядка данных.
Накидывать можно как угодно, а упорядочивание производится при выводе.
Это очень удобно.
Не надо думать ни о номерах, ни о месте в списке, ни об очередности, но о конкурентной работе, ни о проблемах, которые возникнут, если ты сейчас, ради сиюминутных выгод пошел против принципов, а потом обстоятельства изменились.
Интересовать тебя не в рамках задачи, конечно, может. Но точно так же я имею прав указать на абсурдность твоего вопроса..
Вот давай, я ради интереса, буду спрашивать - сколько можно просидеть на облаке, пока не устанешь? вот из чистого любопытства. мне интересно. Нет, я уже не хочу на нем сидеть, но ты ответь! И не увиливай, отвечай на поставленный вопрос. А если не знаешь - то сиди и молчи в тряпочку, понял???
-
Ламер - это чайник, который при этом считает свое мнение единственно правильным, и игнорирует и наводящие вопросы и попытки объяснить
Это какая же попытка была объяснить? Ни слова ты не объяснил. Пожалуйста, Великий, объясни мне, только не коровами и облаками, почему нельзя получить следующее значение автоинкремета. Порядок данных меня не интересует, мне интересно значение конкретного поля, которое каким-то образом всё же вычисляется (хотя бы при выводе).
не увиливай, отвечай на поставленный вопрос.
ну не в форуме про базы данных же.
А если не знаешь - то сиди и молчи в тряпочку, понял???
А как же узнать, если не спрашивать? Знание свыше?
P.S.
http://www.mysql.com/doc/en/SHOW_TABLE_STATUS.html
(http://www.mysql.com/doc/en/SHOW_TABLE_STATUS.html
)
Auto_increment - Next autoincrement value.
Разработчики mysql, видимо, тоже имеют неправильное представление о базах данных.... :-/
-
Тему закрыл. Можете продолжить ее во флейме.