Расширение диапазона последовательности

Задача
Вы не хотите повторно упорядочивать столбец, но вам не хватает номеров последовательности для новых строк.

Решение
Посмотрите, можно ли изменить тип столбца на UNSIGNED или на более широкий целый тип.

Обсуждение
Повторное упорядочивание столбца AUTO_INCREMENT изменяет содержимое практически каждой строки таблицы. Часто этого удается избежать, расширив диапазон столбца, то есть изменив структуру таблицы, а не ее содержимое:

• Если столбец имеет тип со знаком, измените его на UNSIGNED, увеличив тем самым диапазон разрешенных значений вдвое. Предположим, что у вас есть столбец id, который в настоящий момент определен так:

id MEDIUMINT NOT NULL AUTO_INCREMENT

Верхняя граница столбца MEDIUMINT со знаком составляет 8 388 607. Ее
можно увеличить до 16 777 215, убрав у столбца знак при помощи предложения ALTER TABLE:

ALTER TABLE имя_таблицы MODIFY id MEDIUMINT UNSIGNED NOT NULL AUTO_ INCREMENT;

• Если столбец уже имеет тип UNSIGNED, но относится еще не к самому широкому из целых типов (BIGINT), преобразуем его, увеличив тем самым диапазон. Для этого также можно использовать ALTER TABLE. Например, тип столбца id из предыдущего примера можно прообразовать из MEDIUMINT в BIGINT так:

ALTER TABLE имя_таблицы MODIFY id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT;

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела MySQL на эту тему:
Генераторы однострочных последовательностей
Генерирование значений последовательности
Добавление последовательности в существующую таблицу
Извлечение значений последовательности
Использование значений AUTO_INCREMENT для связывания таблиц