O que é AUTO_INCREMENT no MySQL?
Conceitos básicos do AUTO_INCREMENT
No MySQL, AUTO_INCREMENT é um recurso que incrementa automaticamente valores numéricos em uma tabela de banco de dados. É comumente usado como chave primária (PRIMARY KEY), permitindo que números sequenciais sejam atribuídos automaticamente a cada inserção de uma nova linha — sem a necessidade de especificar manualmente o ID.
Principais usos do AUTO_INCREMENT
- Geração automática de ID de membro : Atribui um ID único quando um usuário se registra
- Gerenciamento de número de pedido : Atribui automaticamente um número para cada pedido
- Atribuição de código de produto : Usado como identificador único para produtos
Ao utilizar o AUTO_INCREMENT corretamente, você pode manter a unicidade dos dados enquanto reduz a sobrecarga administrativa.
Como verificar o valor do AUTO_INCREMENT no MySQL [3 SQL Commands]
Método 1: Use SHOW TABLE STATUS
SHOW TABLE STATUS LIKE 'table_name';
Ao executar este comando, o valor atual de AUTO_INCREMENT é exibido na coluna Auto_increment.
Método 2: Recupere de INFORMATION_SCHEMA.TABLES
SELECT AUTO_INCREMENT FROM information_schema.tables
WHERE table_schema = 'database_name' AND table_name = 'table_name';
Este método permite recuperar diretamente o valor de AUTO_INCREMENT definido para a tabela alvo.
Método 3: Use SHOW CREATE TABLE
SHOW CREATE TABLE table_name;
Ao executar este comando, o DDL (Data Definition Language) de criação da tabela é exibido, incluindo a configuração de AUTO_INCREMENT.

Como definir e modificar o AUTO_INCREMENT
Definindo AUTO_INCREMENT ao criar uma nova tabela
Para definir uma coluna com AUTO_INCREMENT ao criar uma nova tabela, use o SQL a seguir:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255)
);
Alterando o valor de AUTO_INCREMENT de uma tabela existente
Se você quiser alterar o valor de AUTO_INCREMENT de uma tabela existente, use o comando a seguir:
ALTER TABLE users AUTO_INCREMENT = 1000;
Após executar este comando, o próximo registro inserido começará com o ID 1000.
Alterando o valor de incremento do AUTO_INCREMENT (MySQL 8.0 ou posterior)
Por padrão, o valor de AUTO_INCREMENT aumenta em 1. No entanto, você pode alterar o valor de incremento, se necessário.
SET @@auto_increment_increment = 5;
Com esta configuração, o valor de AUTO_INCREMENT aumenta em 5 a cada vez (ex.: 1, 6, 11, …).
Observações importantes ao usar AUTO_INCREMENT [Prevent Data Issues]
Limite máximo de valor do AUTO_INCREMENT
O valor máximo de AUTO_INCREMENT depende do tipo de dados da coluna. Por exemplo, ao usar o tipo INT, o valor máximo é 2.147.483.647. Se esse limite for excedido, novos IDs não podem ser gerados, resultando em um erro.
Soluções
- Use
BIGINTpara suportar valores muito maiores - Considere arquivamento de dados ou redefinição quando necessário
Comportamento do AUTO_INCREMENT após excluir dados
No MySQL, excluir registros não redefine automaticamente o valor de AUTO_INCREMENT.
DELETE FROM users WHERE id = 100;
Mesmo que um ID específico seja excluído dessa forma, o próximo valor inserido continua a partir do contador atual sem reutilização.
Como redefinir
Usando TRUNCATE TABLE exclui todos os dados e redefine o valor de AUTO_INCREMENT.
TRUNCATE TABLE users;
Após executar esta operação, o próximo ID inserido será reiniciado a partir de 1.
Transações e AUTO_INCREMENT
No MySQL, o valor de AUTO_INCREMENT não reverte mesmo que uma transação seja revertida (ROLLBACK).
START TRANSACTION;
INSERT INTO users (name) VALUES ('Alice');
ROLLBACK;
Neste caso, os dados não são inseridos, mas o valor de AUTO_INCREMENT permanece incrementado. Como resultado, podem ocorrer lacunas nos números de ID.
Perguntas Frequentes (FAQ)
Q1: Por que os valores de AUTO_INCREMENT às vezes apresentam lacunas?
A: Porque os números não são reiniciados após um INSERT seguido de um ROLLBACK. Exclusões e inserções falhadas também podem causar lacunas.
Q2: Como posso redefinir o valor do AUTO_INCREMENT?
A: Execute TRUNCATE TABLE table_name; para redefini-lo.
Q3: Como posso verificar o valor atual do AUTO_INCREMENT?
A: Use SHOW TABLE STATUS ou consulte INFORMATION_SCHEMA.TABLES.
Q4: O que acontece se o AUTO_INCREMENT exceder seu valor máximo?
A: Se exceder o valor máximo de INT, ocorrerá um erro. Você deve mudar o tipo da coluna para BIGINT.


