Como usar o MySQL Auto-increment

Como usar o MySQL Auto-increment
O incremento automático é um atributo muito importante do MySQL. Quando uma tabela requer um campo numérico que aumente automaticamente para gerar um número seqüencial, o atributo de incremento automático é usado para esse campo. O campo de incremento automático pode ser atribuído como a chave primária ou a chave única para uma tabela se exigir. Este campo não pode armazenar valor nulo. Portanto, quando o atributo de incremento automático é definido para qualquer campo de uma tabela, não a restrição nula será definida automaticamente para esse campo. Quando novos registros precisam se inserir em uma tabela que contém o campo de incremento automático, o usuário não precisa fornecer nenhum valor para esse campo. Como esse atributo funciona nas tabelas MySQL é mostrado neste artigo.

Recursos do campo de incremento automático:

  • O primeiro registro deste campo sempre começa de 1 por padrão e incrementado por 1 quando um novo registro inserções.
  • Se o usuário especificar algum valor numérico específico sem nulo para este campo no momento da inserção que não está no pedido seqüencial, uma mensagem de erro será gerada pelo MySQL.
  • Se algum valor deste campo for atualizado por outro valor que já existir na tabela, o MySQL gerará uma mensagem de erro.
  • Se o usuário excluir os últimos registros da tabela, qual será o novo número seqüencial depende do mecanismo da tabela. A tabela Innodb nunca gera o número gerado anteriormente quando uma nova inserção de registros, mas a tabela Myisam gera o último número seqüencial que é removido da tabela.
  • A função last_insert_id () é usada para recuperar o valor do número que é gerado na última inserção.

Sintaxe:

Crie a tabela Tabela1
(
Field1 Datatype Auto_increment [chave primária],
Field2 Datatype [NULL | NÃO NULO ],
..
Fieldn Datatype [NULL | NÃO NULO ],
);

Aqui, Field1 é definido como campo de incremento automático e o tipo de dados deste campo pode ser qualquer tipo de dados numérico como Int ou Bigint. Não é obrigatório definir o campo de incremento automático como a chave primária. Mas pode ser usado como chave primária para criar um relacionamento entre duas tabelas.

Pré -requisito:

Execute os seguintes comandos SQL para criar um banco de dados chamado 'newdb'e selecione o banco de dados para criar tabelas com atributo de incremento automático.

Criar banco de dados newdb;
use newdb;

Crie uma tabela com incremento automático:

Execute a seguinte declaração de criação para criar uma tabela chamada alunos onde eu ia O campo será criado com o atributo de incremento automático e definido como uma chave primária. Em seguida, dois tipos de declarações de inserção serão executados. Na primeira declaração de inserção, nenhum nome de campo é mencionado na consulta de inserção e você deve fornecer todos os valores de campo da tabela para esse tipo de inserção. Aqui, o nulo O valor é usado para eu ia campo. Na segunda declaração de inserção, todos os campos, exceto o campo de incremento automático, são mencionados na consulta de inserção porque será gerada automaticamente. Em seguida, a instrução SELECT é executada para exibir o conteúdo de alunos mesa.

Crie alunos da tabela (
id int não assinado auto_increment,
Nome Varchar (50) não nulo,
lote smallint não nulo,
Semestre smallint não nulo,
Chave primária (id)
);
Insira os valores dos alunos
(Null, 'Masrafi', 41, 9);
Inserir em estudantes (nome, lote, semestre) valores
('Sakib', 43, 7);
Selecione * dos alunos;

Você pode definir o valor do campo de incremento automático manualmente, mas precisa manter o pedido seqüencial. Você não pode definir nenhum valor menor que o último valor inserido ou igual a qualquer valor existente. A primeira declaração de inserção a seguir funcionará corretamente porque o último valor inserido foi 2. A segunda declaração de inserção gerará um erro porque o valor 2 já existe na tabela.

Insira os valores dos alunos
(4, 'Robel', 41, 9);
Insira os valores dos alunos
(2, 'Manzarul', 41, 9);

Crie uma tabela com incremento automático e zerofiliação não assinada:

Mencionou anteriormente que o campo de incremento automático começa de 1 por padrão. Mas se você usar o atributo zerofil de preenchimento não assinado com campo de incremento automático e definir o comprimento do número, o número será gerado com zero líder com base no comprimento. A seguinte instrução Create criará uma tabela chamada professores onde o incremento automático e os atributos não assinados zerofilos são definidos para tch_id Campo e o comprimento do campo é definido como 4. Em seguida, alguns dados serão inseridos na tabela por instrução inserir e a instrução SELECT exibirá todo o conteúdo da tabela.

Crie professores de mesa (
TCH_ID MediumInt (4) Zerofill Auto_increment não assinado,
Nome Varchar (50) não nulo,
Departamento Varchar (10) Não Nulo,
Chave primária (tch_id)
);
Insira os valores dos professores
(Null, 'maria', 'cse'),
(Null, 'Janifer', 'BBA'),
(Null, 'Micheal', 'Eng');
Selecione * dos professores;

Aqui, é mostrado que 0001, 0002 e 0003 são gerados como valores TCH_ID.

Agora, se você excluir o último registro e inserir um novo registro, um novo número mais o valor excluído TCH_ID será gerado como novo tch_id.

Exclua dos professores onde tch_id = 3;
Insira os valores dos professores
(Null, 'mahmuda', 'cse');
Selecione * dos professores;

Redefinindo o campo de incremento automático:

Se todos os registros forem excluídos do professores tabela que contém o campo de incremento automático e depois o novo valor de tch_id será gerado após o último valor inserido. Depois de executar as seguintes declarações SQL, será mostrado que o recém -gerado tch_id é 0005 Porque o último valor inserido foi 0004.

Excluir dos professores;
Insira os valores dos professores
(Null, 'Lucy', 'eee');
Selecione * dos professores;

Se você deseja redefinir a tabela e iniciar o valor de 1 novamente, você terá que executar a declaração truncada em vez da declaração de exclusão. Isso é mostrado nas três declarações a seguir.

Professores de mesa truncados;
Insira os valores dos professores
(Null, 'Lucy', 'eee');
Selecione * dos professores;

Você obterá a seguinte saída depois de executar as declarações.

Se você deseja alterar o valor padrão dos campos de incremento automático, é necessário executar a declaração de alteração com o valor inicial de incremento automático. Em seguida, insira um registro e verifique o valor do campo de incremento automático. Aqui, o valor inicial será definido como 15.

Professores de mesa truncados;
ALTER TABLE PROFESSORES AUTO_INCREMENT = 15;
Insira os valores dos professores
(Null, 'Lucy', 'eee');
Selecione * dos professores;

A saída a seguir aparecerá após a execução das instruções SQL acima.

Conclusão:

Os propósitos do atributo de incremento automático são explicados corretamente usando tabelas de amostra neste artigo para ajudar o usuário do MySQL a entender os usos desse atributo.