Gostaria de salientar uma particularidade a respeito do auto-increment, nesta aula o instrutor mostra que é possível forçar o auto-increment para o valor 100, daí novos registros inseridos seguirão a sequência a partir desse valor (101,102,103...), porém não é possível reiniciar o contador para um valor abaixo ou igual do último índice(ID) já inserido na tabela, por exemplo:
CREATE TABLE TAB_IDENTITY (ID INT AUTO_INCREMENT, DESCRITOR VARCHAR(20), PRIMARY KEY(ID));
INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES ('CLIENTE1');
INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES ('CLIENTE2');
INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES ('CLIENTE3');
INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES ('CLIENTE4');
Então agora iremos forçar o auto-increment para 100:
INSERT INTO TAB_IDENTITY (ID, DESCRITOR) VALUES (100,'CLIENTE100');
Agora iremos adicionar 3 registros sem forçar o ID para vermos como fica:
INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES ('CLIENTE101');
INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES ('CLIENTE102');
INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES ('CLIENTE103');
Note que o auto-increment continuou a contagem a partir daquele do ID 100 que forçamos anteriormente, porém vamos supor que agora queremos popular a tabela a partir do ID 5:
INSERT INTO TAB_IDENTITY (ID, DESCRITOR) VALUES (5,'CLIENTE5');
Olha só, de fato conseguimos forçar a inserção do registro com ID 5, então pela lógica o próximo que eu inserir sem parâmetro seguirá a sequência a partir do ID 6, correto? Incorreto, olhe só o que acontece quando inserimos um registro:
INSERT INTO TAB_IDENTITY (DESCRITOR) VALUES ('CLIENTE6');
Observe que nosso CLIENTE6 foi designado como ID 104, pois o contador do auto-increment prosseguiu a partir do maior index que havia sido inserido anteriormente.
Espero que tenha sido esclarecedor. Obrigado!
OBS*: Se alguém tiver uma solução para driblar essa limitação, por favor comente aqui nesse post!!!!