Resumo : neste tutorial, mostraremos várias maneiras de redefinir os valores de incremento automático de AUTO_INCREMENT
colunas no MySQL.
O MySQL fornece um recurso útil chamado incremento automático . Você pode atribuir o AUTO_INCREMENT
atributo a uma coluna de uma tabela para gerar uma identidade exclusiva para a nova linha. Normalmente, você usa o AUTO_INCREMENT
atributo para a coluna de chave primária da tabela.
Sempre que você insere uma nova linha em uma tabela , o MySQL atribui automaticamente um número de sequência à AUTO_INCREMENT
coluna.
Por exemplo, se a tabela tiver oito linhas e você inserir uma nova linha sem especificar o valor para a coluna de incremento automático, o MySQL irá inserir automaticamente uma nova linha com id
valor 9.
Às vezes, pode ser necessário redefinir o valor da coluna de incremento automático para que a identidade do primeiro registro inserido na tabela comece com um número específico.
No MySQL, você pode redefinir valores de incremento automático de várias maneiras.
Exemplos de valores de incremento automático de redefinição do MySQL
Primeiro, crie uma tabela chamada items
e atribua o AUTO_INCREMENT
atributo à id
coluna de chave primária.
CREATE TABLE items (
id INT AUTO_INCREMENT,
name VARCHAR(45) NOT NULL,
PRIMARY KEY (id)
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, insira alguns dados de amostra na items
tabela:
INSERT INTO items(name)
VALUES('Item 1'),
('Item 2'),
('Item 3');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, consulte a items
tabela para verificar a operação de inserção:
SELECT * FROM items;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+----+--------+
| id | name |
+----+--------+
| 1 | Item 1 |
| 2 | Item 2 |
| 3 | Item 3 |
+----+--------+
3 rows in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
Temos três linhas com valores das colunas de ID 1, 2 e 3. Perfeito! É hora de praticar a redefinição do valor de incremento automático da coluna ID.
1) Usando a instrução ALTER TABLE
Você pode redefinir o valor do incremento automático usando a ALTER TABLE
instrução. A sintaxe da ALTER TABLE
instrução para redefinir o valor do incremento automático é a seguinte:
ALTER TABLE table_name
AUTO_INCREMENT = value;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe, você especifica o nome da tabela após a ALTER TABLE
cláusula e a value
qual deseja redefinir na expressão AUTO_INCREMENT=value
.
Observe que value
deve ser maior ou igual ao valor máximo atual da coluna de incremento automático.
Primeiro, exclua o último registro da items
tabela com id
valor 3:
DELETE FROM items
WHERE id = 3;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Se você inserir uma nova linha, o MySQL atribuirá 4 à id
coluna da nova linha. No entanto, você pode redefinir o número gerado pelo MySQL para 3.
Segundo, redefina o valor do incremento automático para 3 usando a ALTER TABLE
instrução:
ALTER TABLE items AUTO_INCREMENT = 3;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, insira uma nova linha na items
tabela:
INSERT INTO items(name)
VALUES ('Items 4');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Por fim, recupere os dados da tabela de itens:
SELECT * FROM items;
Saída:
+----+---------+
| id | name |
+----+---------+
| 1 | Item 1 |
| 2 | Item 2 |
| 3 | Items 4 |
+----+---------+
3 rows in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
Temos três linhas com o último valor de incremento automático sendo 3 em vez de 4, que é o que esperávamos.
2) Usando a instrução TRUNCATE TABLE
A instrução TRUNCATE TABLE remove todos os dados de uma tabela e redefine o valor do incremento automático para zero.
O seguinte ilustra a sintaxe da TRUNCATE TABLE
instrução:
TRUNCATE TABLE table_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Ao usar a TRUNCATE TABLE
instrução, você exclui todos os dados da tabela permanentemente e redefine o valor do incremento automático para zero.
Por exemplo:
TRUNCATE TABLE items;
3) Usando instruções DROP TABLE e CREATE TABLE
Você pode usar um par de instruções: DROP TABLE e CREATE TABLE para redefinir a coluna de incremento automático. Observe que este método exclui todos os dados da tabela permanentemente.
Assim como a TRUNCATE TABLE
instrução, essas instruções eliminam a tabela e a recriam, portanto, o valor do incremento automático é zerado. Por exemplo:
DROP TABLE items;
CREATE TABLE items (
id INT AUTO_INCREMENT,
name VARCHAR(45) NOT NULL,
PRIMARY KEY (id)
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste tutorial, você aprendeu vários métodos para redefinir valores de incremento automático no MySQL. A ALTER TABLE AUTO_INCREMENT = value
afirmação é preferível porque é a mais fácil e não tem efeitos colaterais.