MySQL – если достигнут максимум поля с AUTO_INCREMENT

Хай,

Что будет если в MySQL если достигнуто максимальное значение поля с AUTO_INCREMENT?

Все не секси

Проверьте сами

use test;
drop table if exists aaa;
create table aaa (
id TINYINT(2) unsigned AUTO_INCREMENT,
primary key (id)
) ENGINE=INNODB;

drop procedure if exists fff;
delimiter //
create procedure fff()
begin
set @x = 0;
repeat
set @x = @x + 1;
insert into aaa values ();
until @x >= 254
end repeat;
end
//

call fff()//

delete from aaa where id = 1;
delete from aaa where id = 5;

alter table aaa auto_increment = 1;

insert into aaa values ();
insert into aaa values ();
insert into aaa values ();

Заальтерить AUTO_INCREMENT можно только на значение, которое больше текущего максимума поля с AUTO_INCREMENT.

Посему если кол-во контента у вас не укладывается в отведенное для этого поля, то лучше заальтерить само поле, до BIGINT например. Иначе юзать комплексные ID-шники.

Пролистать наверх