Добрый день, подскажите пожалуйста, как сделать так, что бы отправляя данные в базу, id (к примеру) считалось с автоинкрементом не 1, 2, 3 ... а так как я захочу? Например 1000, 1001, то есть с определённого числа а не от нуля.
Установите автоинкрементальный счетчик в 1000. В чем проблема? Например, резерв начального диапазона для каких-то особых записей.
Нет ничего глупее этого. Идентификатор строки необходим исключительно для обеспечения уникальности строки. Никого кроме самою базу данных не должно волновать какое значение имеет идентификатор, важно только то, что он уникальный. Как только программист забывает (не успевает узнать) об этом и тянет свои шаловливые ручёнки к идентификатору строки стараясь на него как-то повлиять, начинаются большие проблемы.
Мускул? http://u75.ru/mysql-alter – найдите в определении AUTO_INCREMENT и сведите по определению в готовый запрос. @Valick, я со своей «глупостью» как-нибудь сам разберусь. Вот что действительно глупо, так это мыслить догмами, не вникая в детали, не учитывая особенности и т.п.
Правильно это никогда не делать. Если нужен какой-то особенный порядок нумерации, просто необходимо добавить дополнительное поле в таблицу базы данных.
@Valick, никто не писал, что нужно прямо жестко навешивать доп. смысловую нагрузку на опред. идентификаторы. Почему ты исключаешь категорию желаемого? Кстати, даже если забить на желания, все равно бывают исключения. Типичный пример – нулевой идентификатор – на него часто навешивают доп. смысловую нагрузку. --- Добавлено --- Например, я хочу админам или почетным модерам форума «выдавать» «красивые» id-шники. Или, например, я хочу спец. страницам и коллекциям «выдавать» «красивые» id-шники, «сдвинув» автоинкрементальный счетчик подальше для всех прочих (каких-то регулярных) страниц (речь о таблице со слагами и проч. подобной инфой для однокомпонентных путей: /mypage).
На автоинкрементальное поле часто навешивается хронология создания. Почему бы не создать отдельное поле? Нафиг создавать отдельное поле-точную копию уже существующего? Да еще нести доп. затраты по формированию значений этого отдельного поля?
Она не навешивается, она есть по своей сущности. А ты предлагаешь ТС эту хронологию сломать. Ты сейчас несёшь такую ересь, что самое время остановиться.
Да, можешь остановиться, если нечего сказать. Просить привести пример «ереси» не буду, дабы лишний раз не напрягать. Просто учись отвечать за свои слова.
Mля, она не всегда нужна, поэтому я использовал это слово. А даже когда нужна, да, бывают случаи, что ее требуется «сломать». Это делается, чтобы была скрытая возможность подделать хронологию создания, т.е. когда-нибудь потом добавить начальные элементы. См. шире на вещи. Учитывай реальный опыт (можно чужой, если нет своего). Т.е. читай не только полуакадемические книжки.
Просто не надо это делать через жопу. Эта задача решается, как я уже сказал, путём добавления соответствующего поля. С которым можно делать всё что угодно, целостность данных никогда не будет нарушена. Одна из основных задач БД - это обеспечение целостности данных. Ка только ты начинаешь манипулировать идентификатором на своё усмотрение, ты сводишь на нет все усилия базы данных в этом направлении. Прочти хотя бы одну, потом поговорим @miketomlin, я ТС задал вполне конкретный (риторический) вопрос. Но ты решил "блеснуть" своими "знаниями" полагая, что кроме тебя никто не знает, что инкремент можно установить произвольно специальной командой.
Ты вообще читаешь, что я пишу? Чем резервирование нарушает целостность данных? И я тебе на картинках попытался объяснить, что очень часто доп. поле вроде order, created и т.п. нафиг не нужно, т.е. вредно, бесполезно для цели «скрытности», о кот. я писал выше. Вижу, напрасно. Так вот что тебя задело! В след. раз предупреждай: «народ, молчим; пускай ТС почешется» Я писал ТСу. Он походу не знает. Насчет всех остальных я как-то не задумывался
Меня уже очень давно трудно задеть. Просто ты слишком бурно реагируешь на любое несогласие с твоим мнением. Ему и не надо знать. Ты оказал ему медвежью услугу. Это равноценно как пятилетнему ребёнку дать в руки боевую гранату и всем объяснять, что чека на месте ничего плохого не случится. Вопрос ТС - это очередная проблема молотка. Поэтому я и хотел узнать, для какой задачи он выбрал такое решение.
Я в след. раз тебя так же опущу и посмотрю, как ты отреагируешь. Короче не переводи стрелки. Я не говорил, что не согласен. Я сказал, что ты слишком категоричен. А ты не захотел или не смог этого понять. А вдруг! Заметь, ТС ничего не писал про кривое применение, а лишь говорил о желании сделать резерв. Я верю в людей