Analista em Computação/Ênfase em Suporte em Banco de Dados
No MySQL 8, qual instrução reinicia automaticamente o contador AUTO_INCREMENT de uma tabela InnoDB para o valor inicial sem que seja preciso especificar manualmente um novo valor?
ADELETE FROM t;
BRENAME TABLE t TO t_old;
CALTER TABLE t AUTO_INCREMENT = 1;
DTRUNCATE TABLE t;
EOPTIMIZE TABLE t;
Revelar gabarito e comentário▾
GabaritoD — TRUNCATE TABLE t;
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
MySQL – Comandos de exclusão e AUTO_INCREMENT
Gabarito: letra D. O comando TRUNCATE TABLE t reinicia automaticamente o contador AUTO_INCREMENT para o valor inicial (geralmente 1) em tabelas InnoDB, pois recria a estrutura da tabela do zero. Diferentemente, DELETE FROM t apenas remove as linhas sem resetar o contador, e ALTER TABLE t AUTO_INCREMENT = 1 exige especificação manual do valor, não sendo automático.
1DELETE FROM tRemove linhas
2RENAME TABLESó renomeia
3ALTER TABLE ... = 1Manual
4TRUNCATE TABLE tRecria a tabela
5OPTIMIZE TABLEReorganiza
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
DELETE FROM t remove todas as linhas da tabela, mas não reinicia o contador AUTO_INCREMENT. O próximo registro inserido continuará a partir do último valor utilizado. A banca testa aqui a confusão entre exclusão de dados e reset do auto incremento.
Alternativa B — ❌ Incorreta
RENAME TABLE t TO t_old apenas renomeia a tabela; não altera os dados nem o contador AUTO_INCREMENT. O valor do contador permanece o mesmo.
Alternativa C — ❌ Incorreta
ALTER TABLE t AUTO_INCREMENT = 1 realmente define o próximo valor do contador como 1, mas exige que o administrador especifique manualmente o valor (no caso, 1). A questão pede uma instrução que faça isso automaticamente, sem especificação manual, o que não é o caso.
Alternativa D — ✅ Correta ⟵ GABARITO
TRUNCATE TABLE t recria a tabela (descarta e recria), o que zera o contador AUTO_INCREMENT para seu valor inicial. Esse comportamento é automático e não requer a indicação de um novo valor. É a instrução clássica para resetar o auto incremento em tabelas InnoDB.
Alternativa E — ❌ Incorreta
OPTIMIZE TABLE t reorganiza o armazenamento físico da tabela e pode liberar espaço, mas não reinicia o contador AUTO_INCREMENT. Seu objetivo é otimizar a performance, não resetar sequências.
NÃO CAIA NESSA!
A banca coloca a alternativa C (ALTER TABLE ... AUTO_INCREMENT = 1) como um distrator forte, pois muitos candidatos sabem que ALTER TABLE pode definir o auto incremento, mas esquecem que a questão exige automaticidade (sem especificar manualmente). O TRUNCATE faz isso de forma implícita.