ФорумРазработкаБазы данных → вычислить id

вычислить id

  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 24 июля 2009 г. 19:27

    такая хрень: когда добавляю в базу записи то автоинкрементом увеличиваеца ид. а когда удаляю эти записи то автоинкремент не слетает. так вот если я все записи поудалял и забыл какойтам был последний ид(максимальный) как мне его узнать?
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 24 июля 2009 г. 20:11, спустя 44 минуты 38 секунд

    вопрос: а нах он тебе нужен ?

    Решение:
    1. Добавь ещё одну запись, узнай её айди, отними 1 (единицу) - готово.
    2. Посмотри в пыхомиадмине с какого числа будет идти вставка айди (открываешь базу - таблицу - вкладка "операции" (кажеться она) - смотришь там).
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 24 июля 2009 г. 20:14, спустя 2 минуты 21 секунду

    мне надо чтоб это в скрипте происходило
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 24 июля 2009 г. 20:27, спустя 12 минут 53 секунды

    Mr.Pihto, в скрипте, в котором все удаляется ?
    Если да, то сначала ищи максимальный айди, после этого уже делай удаление :)
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 24 июля 2009 г. 20:45, спустя 18 минут 13 секунд

    короче скрипт записывает в таблицу данные. под каким идо хз после того как там все поудаляли вот мне нужно чтоб в другую таблицу в этом же скрипте записывалась другая инфа и в поле в спецальном писался ид той записи которую в первую таблицу записывал
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 25 июля 2009 г. 0:36, спустя 3 часа 51 минуту 5 секунд

    mysql_insert_id
    больше ничего не нужно при работе с автоинкрементами…
    все умрут, а я изумруд
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 25 июля 2009 г. 9:33, спустя 8 часов 56 минут 53 секунды


    короче скрипт записывает в таблицу данные. под каким идо хз после того как там все поудаляли вот мне нужно чтоб в другую таблицу в этом же скрипте записывалась другая инфа и в поле в спецальном писался ид той записи которую в первую таблицу записывал
    а нельзя узнать ID этих записей перед их удалением?
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 25 июля 2009 г. 9:54, спустя 21 минуту 21 секунду

    можно. сначало думал так делать. но это для них надо аж целую таблицу создавать:) короче делаю просто: записываю данные в одну таблицу потом беру ид этой записи и подставляю его в запрос когда записываю данные в другую таблицу
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 25 июля 2009 г. 11:00, спустя 1 час 5 минут 49 секунд

    ну вообще-то так всегда и делается, если эти данные вставляются в разные таблицы и это разные данные :)
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 25 июля 2009 г. 16:05, спустя 5 часов 4 минуты 58 секунд

    нужно было некоторые данные из той таблицы которые мне неизвестны до того как я туда ниче не запишу записать в другую
    Спустя 47 сек.
    а остальные всев двух ьаблицах данные разные
    Спустя 34 сек.
    акромя вот этого вот ида
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 25 июля 2009 г. 19:29, спустя 3 часа 23 минуты 35 секунд

    Mr.Pihto, ты строишь сам себе стенку, в которую бьешся головой :)
    Пиши во вторую таблицу данные без того АйДи, который ПОКА не знаешь. А когда он будет известен, то просто сделаешь апдейт строки. Потому как пока логики в твоей хуйне я не вижу: вставить те данные, которых пока нет, и о которых ни мы ни кто иной пока не знает и знать не может.
  • Mr.Pihto

    Сообщения: 1386 Репутация: N Группа: Адекваты

    Spritz 25 июля 2009 г. 22:08, спустя 2 часа 39 минут 11 секунд

    пиздец я ж грю я так и сделал. :)
    Спустя 65 сек.
    ещё в позопосте написал)
    Спустя 119 сек.
    и логика тут есть :) тыж просто всего незнаеш :))
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 27 июля 2009 г. 6:02, спустя 1 день 7 часов 54 минуты


    и логика тут есть :) тыж просто всего незнаеш :))
    ну дык объясни эту логику, я ее тоже не вижу.
    А на досуге поразмысли над тем вопросом, что если ты узнаешь id раньше чем добавляются сами данные, то другой процесс может в этот промежуток добавить совсем другие данные под этим id, посему нормальные люди так не делают …
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 27 июля 2009 г. 7:34, спустя 1 час 31 минуту 55 секунд

    не понял зачем ТС хочет уменьшать автоинкремент при удалении. а вот узнать последнее значение перед вставкой нового мне недавно захотелось. вот:

    есть аплоад/даунлоад файлов. сами загруженные файлы хранятся в файловой системе со случайными именами, а в бд хранится описание, в т.ч. путь до сохранённого файла. чтобы количество файлов в папке не превысило разумную величину (например 1000) завел такое правило - имя под-папки == trunc(id/1000)
    просто и красиво! вот только id мы узнаем когда файл ВСЕ операции над файлом уже произведены. пока поставил SELECT max(id) перед сохранением файла. благо что мне непринципиально что кто-то может параллельно добавлять ещё один файл и в папке окажется 1001 или 1002 файла :)

    вопрос: какое правило придумать чтобы не считать количество файлов, не вызывать лишний select и кол-во файлов в одной папке не (сильно) превысило лимит?
    ιιlllιlllι унц-унц
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 27 июля 2009 г. 7:59, спустя 25 минут 24 секунды

    А почему нельзя переместить файл в нужную папку после всех обработок?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!