Оптимизация таблицы

Тема в разделе "PHP", создана пользователем phillip, 21 май 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    В нужной таблице у меня есть поле Id, которое выставляется автоматически. У меня было 5000 строк. Я их все удалил, но id строкам присваивается продолжает с 5000. то есть 5001, 5002, 5003 и тд. Как сделать чтобы снова началось с нуля? Пробовал в пхпмайадмине нажать Оптимизировать таблицу- бестолку. Подскажите как это делается
     
  2. upandhigh

    upandhigh

    Регистр.:
    11 фев 2009
    Сообщения:
    235
    Симпатии:
    89
    ты наверное удалил при помощи
    PHP:
    delete from table_name
    в таком случае автоинкремент не сбрасывается на нуль, и его нужно выставлять руками через:
    PHP:
    alter TABLE table_name auto_increment 1
    если же ты хочешь сразу после удаления ВСЕХ данных, чтобы скидывался на начало и инкремент то для удаления всей инфы используй:
    PHP:
    truncate table table_name;
    P.S.: во всех выражениях слово table_name нужно заменять на имя твоей таблицы.
     
    phillip нравится это.
  3. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    спасибо. А если у меня счас уже куча новых строк, и все они начинаются с id 5000 и идут далее 5001, 5002 и тд. Как мне не удаляя все строки сделать так, чтоб новая строка была с id 0 потом 1, 2, 3. Ведь эти айдишки остались счас свободными и незанятыми.

    сделал счас запрос
    alter TABLE `sites` auto_increment = 1;
    и попробовал добавить строку- все равно присвоил айди 5123, а не свободный 0
     
  4. TrojaNFlash

    TrojaNFlash Прохожие

    сохранить значения, обнулить автоикримент, сохранить значения
     
  5. upandhigh

    upandhigh

    Регистр.:
    11 фев 2009
    Сообщения:
    235
    Симпатии:
    89
    PHP:
    alter table table_name drop column id;
    alter table table_name add id int(11primary key auto_increment not null FIRST;
    можно так сделать - первая команда удаляет столбик ИД из таблицы, вторая создает заново проставляя автоинкремент с нуля. таблица в запросах у тебя table_name и имя столбца с автоинкрементом id - т.е. замени их если у тебя иные имена
     
    phillip нравится это.
  6. agent_smit

    agent_smit Постоялец

    Регистр.:
    12 дек 2008
    Сообщения:
    60
    Симпатии:
    11
    Попробуй сделать NaviCat-ом , у меня получается.
    Там в свойствах таблицы есть вкладка option, где можно выставить значение auto_increment поля
     
    phillip нравится это.
  7. tarantas

    tarantas Постоялец

    Регистр.:
    22 мар 2008
    Сообщения:
    75
    Симпатии:
    14
    Попробуй так :

    Код:
    update table set id = id-5000;
    ALTER TABLE table auto_increment=0;
     
    phillip нравится это.
Статус темы:
Закрыта.