За последние 24 часа нас посетили 37947 программистов и 1809 роботов. Сейчас ищут 855 программистов ...

Запись в БД (auto_increment)

Тема в разделе "PHP для новичков", создана пользователем GvOzD, 14 мар 2008.

Статус темы:
Закрыта.
  1. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    GvOzD
    Я надеюсь, что не будет таких случаев, что два пользователя одновременно запросят выполнения скрипта и при этом им выдаст одинаковые айдишники?
     
  2. Anonymous

    Anonymous Guest

    Kreker, или одинаковые выдаст, или если запросы по времени перекрестятся - попадут успеет выдать новый ID раньше чем тот его вставит...
    можно кнешна TABLE LOCK делать, но... это не верно в корне, как уже говорилось.
     
  3. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    +1

    Остальным: где траву берете?
     
  4. tmanager

    tmanager Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    108
    Симпатии:
    0
    Ну если автору темы так уж нужно узнать, какой id получит запись (присоединяюсь ко всем, кто решительно осуждает такие решения, но вдруг сумею помочь автору сдвинуться с мёртвой точки -- если он иначе не может реализовать поставленную перед ним задачу).

    Вставляешь запись (произвольшую), получаешь её ID -- а потом редактируешь эту запись во славу Господню.

    Если программа решает, что такая запись на самом деле не нужна -- удаляешь её.

    Извращение, конечно. Но решает задачу, которую нам подкинул автор темы.

    Лирическое отступление.

    Почему всем новичкам так необходимы хитроумные операции с ID?

    Особенно умиляют попытки создать СВОЙ алгоритм установки ID. Тут в первую очередь приходит на ум таймстемп.
    Когда сталкиваются, что таймстемпы запросов могут совпасть -- придумывают случайные числа. Та как и они могут совпасть, перед вставкой проводят проверку...

    Люди добрые, зачем????????????????
     
  5. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    у меня тоже вопрос по ID и auto incriment

    есть таблица
    ID|content

    поле ID - auto_incriment

    некоторые записи удалялись, поэтому таблица имеет вид типа

    1|aa
    2|bb
    4|cc
    6|dd

    как "заполнить" дыры. В данном случае 5 и 3.
     
  6. tmanager

    tmanager Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    108
    Симпатии:
    0
    Никак.

    Не в том смысле, что этого сделать нельзя. Можно. update таблица set id=4 where id=5 и все дела.

    Я хочу сказать, что не надо этого делать по ряду веских причин.

    Если у тебя какая-то нумерация должна идти без дыр -- создай для неё отдельное поле.
     
  7. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    update отпадает. Там id связан с другой таблицей. А вообще сделать можно. Вот только я задумался: нужно ли?
     
  8. tmanager

    tmanager Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    108
    Симпатии:
    0
    Значит, я не зря писал свой пост.
     
  9. Johnatan

    Johnatan Активный пользователь

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    Мне кажется, что многие так страшно боятся "потерять" свои строки в БД. :)
    Только я вот, например, не представляю такого случая, когда id (индексная колонка в таблице), ОБЯЗАТЕЛЬНО, должна быть неразрывной. Может кто придумает? :)
     
  10. Anonymous

    Anonymous Guest

    Ты чо, а как же они MAX(id) тогда делать то будут для подсчета строк? ;)
     
  11. tmanager

    tmanager Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    108
    Симпатии:
    0
    В таком случае есть надежда сэкономить усилия на ведение поля нумерации -- которая согласно желанию заказчика должна быть неразрывной.
    Журнал счетов и т.п.
     
  12. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    хочется чтоб было красиво. Все поля по порядку, без дырок. Чисто эстетический момент.
     
  13. tmanager

    tmanager Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    108
    Симпатии:
    0
    Может, тебе в дизайнеры податься?
     
  14. GvOzD

    GvOzD Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    Модеры , закрывайте тему.Уже всё задано и отвечено :)
     
Статус темы:
Закрыта.