Olá Carla!
No MySQL, quando uma coluna é configurada como AUTO_INCREMENT
, o banco de dados automaticamente atribui um valor incremental a essa coluna durante a inserção de novos registros, ignorando qualquer valor especificado na instrução de inserção Além disso, por padrão o MySQL não permite que uma linha com um valor de incremento automático comece com o valor zero. Na documentação do próprio MySQL diz que o armazenamento de 0 não é uma prática recomenda. É uma convenção padrão começar o auto incremento a partir de 1. Isso evita confusões, mantém consistência com práticas comuns de banco de dados e previne problemas durante operações de backup e restauração. Mas, na aula por questões de didática, o instrutor optou pelo 0, além do SQL Server não ter tido essa restrição.
Porém, nem tudo está perdido Carla, caso em algum momento você precise alterar a sequência do auto incremento, poderá fazer um ALTER TABLE
na tabela, mas não poderá ser 0. Caso quiséssemos que o valor de incremento começasse por 100, poderíamos fazer:
ALTER TABLE tbl AUTO_INCREMENT = 100;
Mas, não vou te deixar sem solução, mesmo que não seja recomendado, se você ainda quiser que comece com 0, uma solução é você setar a variável de configuração para permitir a inserção do zero::
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
Veja a seguir uma imagem de uma simulação, onde primeiro tendo inserir o valor de id 0
para "Carla" e isso não reflete no banco, que coloca o valor 3. Porém, após definir NO_AUTO_VALUE_ON_ZERO
e inserir "Rafael", a inserção é feita com êxito:
Para desativar essa permissão de inserção com 0 em colunas de AUTO_INCREMENT
, basta executar:
SET sql_mode = '';
Deixo como referência para sua consulta duas documentações do MySQL que tratam deste assunto:
Espero ter me feito claro, mas, qualquer dúvida, fico à disposição.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!