За последние 24 часа нас посетили 17644 программиста и 1611 роботов. Сейчас ищут 2090 программистов ...

Помогите устранить пробелы с нумерацией строк.

Тема в разделе "MySQL", создана пользователем anton_m, 9 апр 2009.

  1. anton_m

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

    С нами с:
    9 апр 2009
    Сообщения:
    6
    Симпатии:
    0
    Когда создаешь поле id (int) со значением auto_increment, с каждой новой записью поле увеличивается на единицу. Вся колонка пронумерована по порядку. А потом появляется необходимость удалить пару строк, и появляются разрывы в нумерации. Например: 1,2,4,6,7,8. Есть ли какой-нибудь запрос в базу, который позволяет устранить пробелы в нумерации, чтобы вновь нумерация осуществлялась по - порядку. Если это невозможно для поля id, то можно создать дополнительное поле в таблице. Ребят, помогите, очень нужно.
     
  2. kas1e

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

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    А смысл? У тебя смешаются старые записи с большими идишниками и новые с мелкими. Оно те надо?

    Если это так фатально - почитай про дистинкт, или сам реализуй автоинкримент на худой конец =)
     
  3. kostyl

    kostyl Guest

    anton_m
    а ты случаем не зарегистрирован под ником mawa?
    ну допустим смешаются и что будет?
     
  4. kas1e

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

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    А то, что это не всегда удобно. Если в таблице всего два поля допустим, id и name(варианты придумывайте сами, это минимальный пример), а тебе надо вывести все в порядке добавления - рационально ли добавлять поле даты? Или легче по id сортануть?
     
  5. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    kas1e
    Иметь поле с датой всегда полезно, обычно в итоге его хотят. А сортировать можно и по id, можно по дате - индексам помоему пофиг.
     
  6. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    ну дак никто тебе и не мешает сортировать по ID
     
  7. anton_m

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

    С нами с:
    9 апр 2009
    Сообщения:
    6
    Симпатии:
    0
    Хорошо, поле id не трогаем, поскольку это идентификатор.
    Вопрос такой, можно ли создать поле (int) и одним запросом пронумеровать все записи в таблице по порядку.
    не обязательно разжевывать, сам разберусь, только дайте наводку или ссылку..
     
  8. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    [sql]set @a:=0;
    update `таблица` set `поле`=(@a:=@a+1);[/sql]
     
  9. kas1e

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

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    ну, если есть таблица со структурой:

    [sql]id | tag | new[/sql]

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

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

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    а я без двоеточия пробовал... думал че за херня...