wtf_object
@wtf_object

Как изменить все ID в таблице?

Всем привет. После некоторых действий с таблицей изменился порядок ID (является ключом)
т.е было:
id+foo
0+bar
1+bar
2+bar
3+bar
4+bar
(и так далее. т.е ID был по порядку +1)

Стало:
id+foo
0+bar
1+bar
3+bar
5+bar
7+bar
(и так далее. т.е ID сбился и идет не по порядку)

Возможно ли только запросами к таблице перезадать ID? (сделать индексацию по порядку (+1))
  • Вопрос задан
  • 2107 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
set @i := -1;
update tablename set id = (@i := @i+1 ) order by id;

Под рукой нет mysql, чтобы проверить синтаксис. По памяти - так.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
art_karetnikov
@art_karetnikov
Лучший мой проект: Мобильный банк Сбербанка РФ.
Это все возможно, но похоже на ошибку, которую часто делают новички. Сбился айди, не по порядку? Да и хрен с ним. Он и не должен быть по порядку, не в этом его смысл. А вот если на него есть ссылки, а вы эти ссылки погубили - то сейчас надо исправить апдейтом, а впредь использовать форейн кей.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы