2014-08-31 2 views
0

Я интересно, как элегантное решение этой проблемы может выглядеть следующим образом:MySQL: Как обновить ключевой столбец, начиная с «1»

У меня есть таблица с ок. 100 записей и один столбец первичного ключа с включенным автоматическим добавлением. Клавиши начинаются с 200.

Теперь я хотел бы отключить функцию автоматического увеличения и обновить столбец клавиш, чтобы клавиши начинались с «1». Конечно, я мог бы просто создать вторую таблицу и просто выбрать/вставить эти значения.

Но я хотел бы знать, можно ли напрямую обновлять значения ключей. Поскольку текущие ключи начинаются с значения 200 и меньше значений, это должно работать как-то, верно?

+2

, но почему вы хотите это сделать? Скажите нам настоящую проблему, а не воспринимаемое решение. –

+2

может быть что-то вроде 'UPDATE table SET col = col-200' – 19greg96

+4

Я не могу найти единственную причину того, почему кто-то хочет это сделать, помимо эстетических проблем. Но один из способов - отбросить столбец, отдохнуть автоинкремент и снова заново создать его , – Mihai

ответ

2

Я не знаю, зачем вам это нужно сделать как this.I думаю, что эти запросы будут работать

SET @INDEX = 0; 
UPDATE `tablename1` SET ID = (@INDEX:[email protected]+1); 

ALTER TABLE `tablename1` AUTO_INCREMENT = 100; 

AUTO_INCREMENT установлен как 100, чтобы обновить для следующей строки. вам нужно установить AUTO_INCREMENT с правильным значением в запросе, чтобы генерировать идентификатор, который вы хотите.

Смежные вопросы