Я пытаюсь сбросить свой первичный ключ, чтобы он не оставил в нем "дыры". Я нашел эту функцию:
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)
но это говорит мне, что у него неправильный синтаксис, может кто-нибудь дать мне совет о том, как заставить его работать? Заранее спасибо!
- вы можете попробовать это, но если это автокорректно, как отсутствуют записи из таблицы для ключа?
DECLARE @MaxColumn INT
SELECT @MaxColumn = MAX(ID)
FROM TAbleName
ALTER TABLE table AUTO_INCREMENT = @MaxColumn