Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Составление SQL-запросов > пересчитать автоинкремент в таблице |
Автор: jone31 6.7.2010, 19:15 |
всех приветствую. вчера почистил таблицу mysql с логами, удалил 34 миллиона записей, оставил записи только за этот год, и получается что первый id начинается почти с 12 миллионов, что не очень удобно и это все далее будет плодится в очень быстром темпе. вопрос: можно ли с помощью sql языка пересчитать автоинкримент во всех строках таблицы автоматически? столбец `id` - автоинкримент |
Автор: Akina 6.7.2010, 19:24 |
Оставь как есть - это будет правильно. |
Автор: jone31 6.7.2010, 19:36 |
а что в этом правильного? таблица статическая, на неё ничего не ссылается. |
Автор: Artemon 6.7.2010, 20:32 |
Если возникает потребность обнулять автоинкремент, то это первый звоночек, говорящий что структура БД не в порядке, либо использование БД не правильное. |
Автор: skyboy 6.7.2010, 20:53 |
если никто не ссылается - используй естественный первичный ключ. зачем в таком случае синтетика, на которую никто не ссылается, которую никто не использует, которую надо время от времени удалять и перенумеровывать? |
Автор: Akina 7.7.2010, 07:14 |
Синтетический ключ. Подробности в мануале. А зачем ты его вообще ввёл? Тупое следование общепринятой практике? |
Автор: jone31 7.7.2010, 15:00 |
да я сам незнаю зачем я его ввел туда. ![]() Добавлено через 1 минуту и 42 секунды да и модераторам легче ссылаться на строку по ID, чем по времени добавления и другим полям.... |
Автор: Akina 7.7.2010, 15:04 |
Стоп! это поле - первичный ключ, или не ключ, но индексированное, или просто тупой indentity? |
Автор: jone31 7.7.2010, 16:00 | ||
|
Автор: Akina 7.7.2010, 16:44 |
1) Ты создаёшь поле bigint(20) - т.е. чётко понимая, что записей будет дохрена. И в то же время тебя пугает восьмизначный номер... где логика? 2) Поскольку это поле является первичным ключом, а таблица явно является низовой - изменение этого поля есть явный идеологический косяк. Artemon, видимо, прав. |
Автор: jone31 7.7.2010, 20:49 |
да, это косяк. Но вопрос был в другом: можно ли пересчитать id в таблице по новой? |
Автор: Akina 7.7.2010, 21:54 |
Да. Можно. |
Автор: dillinja 30.1.2011, 19:15 | ||
jone31 случаем не решил вопрос ? просто впадлу копировать базу и прогонять по новой... у меня такой же вопрос возник, дело в том что эти ID как никак память жрут - зачем использовать лишние мегабайты в пустую ?
|