1. PHP / Говнокод #8708

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    $sql = "SELECT (max(nid) + 1) FROM cms_news";
    $MySQL_baza->ExecQuery($sql);
    $myrow=$MySQL_baza->FetchArray();
    $max=$myrow[0];

    Копался в одном старом проекте, не сразу понял зачем нужен следующий код.
    Автоинкримент %)

    Запостил: MAXHO, 02 Декабря 2011

    Комментарии (31) RSS

    • Автоэкскремент.
      Ответить
    • Нормальный говнокодец
      Ответить
    • Я как то встречал подобное. Но реализовано другим более элегантным способом. Суть в том, что автоинкремент не обеспечит последовательность чисел без разрывов 1,2,3...n. А порой нужно именно так. Я делал Топ файлов. О блядь я пользовался при инсерте. Может таким образом чел считал количество новостей.
      Ответить
      • Если честно не пойму - ну добавили/удалили значение в базе и все уникальные индексы шерстить?
        Ответить
        • это армейская база
          в случае потери записи из таблицы батальона, остальные записи обязаны теснее сомкнуть ряды
          Ответить
      • > не обеспечит последовательность чисел без разрывов 1,2,3...n
        до 26 апреля сего года не было ни единого разрыва
        Ответить
    • Обычный автоинкремент, ничего страшного. Разве что стоило бы заменить на coalesce(max(nid) + 1, 1).
      Ответить
      • А разве инкремент не должен быть критической секцией (соотетвенно, выполняться самой базой)? Иначе параллельно выполняющиеся клиенты БД могут получить один и тот же "уникальный" идентификатор...
        Ответить
    • показать все, что скрытоvanished
      Ответить
    • Видать, кто-то оказался хитрее всех - запасся учётками во время перестройки и теперь флудит и троллит ими.

      Какой багор )))
      Ответить
    • Катя подошла к Дане, обняла его и поцеловала в обе щеки:
      Ответить

    Добавить комментарий