Сброс автоинкремента с максимума (столбец)

0

Я пытаюсь сбросить свой первичный ключ, чтобы он не оставил в нем "дыры". Я нашел эту функцию:

ALTER TABLE table AUTO_INCREMENT = 0

Это сбрасывает столбец auto_increment в начальную точку, поэтому следующее поле будет иметь "1", если оно было

ALTER TABLE table AUTO_INCREMENT = 1

В следующем поле будет "2".

Я пытаюсь сделать так, чтобы число после AUTO_INCREMENT = 1 принимало наивысшее значение из столбца, в котором оно было автоматически объявлено.

ALTER TABLE table AUTO_INCREMENT = MAX(column)

но это говорит мне, что у него неправильный синтаксис, может кто-нибудь дать мне совет о том, как заставить его работать? Заранее спасибо!

  • 0
    Вы создаете проблему там, где ее нет. «Отверстия» в первичном ключе не являются проблемой. Не беспокойся об этом.
  • 0
    да, я знаю, но мне больно, хаха! Это маленький школьный проект, ничего особенного
Показать ещё 1 комментарий
Теги:

1 ответ

0
Лучший ответ

- вы можете попробовать это, но если это автокорректно, как отсутствуют записи из таблицы для ключа?

DECLARE @MaxColumn INT

SELECT @MaxColumn = MAX(ID)
FROM TAbleName

ALTER TABLE table AUTO_INCREMENT = @MaxColumn
  • 0
    Это работает как шарм! Даже если сейчас это бесполезно, когда я об этом подумал, если у меня есть 4 записи, это «полезно», только если я удаляю последнюю полученную запись, если я удаляю третью, она продолжится с 4, а затем 5. Спасибо за Помогите! ^^

Ещё вопросы

Сообщество Overcoder
Наверх
Меню