UpInside Treinamentos

Conhecendo o AUTO_INCREMENT no MariaDB

Conheça alguns atributos utilizados nos campos de identificação. Isso faz com que o seu banco mantenha a integridade dos registros!

Conhecendo o AUTO_INCREMENT no MariaDB
  • Compartilhe esse post
  • Compartilhar no Facebook00
  • Compartilhar no Google Plus00
  • Compartilhar no Twitter

Salve salve WebMaster, Gustavo Web aqui com mais um artigo relacionado a banco de dados!

Mas o que AUTO_INCREMENT tem de relação com a integridade? Quando eu falo de integridade, não é referente se existe tabelas corrompidas, ou se o banco de dados não está trabalhando corretamente com os índices ou qualquer outra coisa do tipo relacionada a estrutura ou confiabilidade das informações... Estou me referindo a formas que o banco tem de "se proteger" para manter todos os registros em pleno acordo com o que é necessário. Mas calma, vamos por partes!

Você já se perguntou o porque em toda tabela que você cria, geralmente você criar uma coluna [blablabla]_id e seta ela com tipo INT, tamanho 11, AUTO_INCREMENT?

Mas porque diaxo esse AUTO_INCREMENT?

A grosso modo é a maneira de abstrair a realidade e sintetizar num modelo de entidade e relacionamento dentro um Sistema de Gerenciamento de Banco de Dados Relacional que nos permite criar um elo entre os registros armazenados de forma cronológica, lógica e coerente.

Ficou difícil né? Vamos facilitar esse entendimento…

É uma forma de criar uma identificação única por registro!

Como você já deve ter visto na prática, todas as suas tabelas possuem um campo numérico, para que você possa fazer buscas específicas, alterar ou deletar determinado registro ou ainda fazer relações com outras tabelas do seu banco. Essa é a maneira mais eficientemente prática para criar um identificador único na sua tabela.

Combinando algumas opções, você garante que esse campo seja uma chave para trabalhar num formato de índice (o que agiliza a pesquisa no seu banco de dados) – Deus está vendo você criando essas tabelas sem índice o.O - e possibilita que o banco aumente a sua “taxa de integridade”.

A "taxa de integridade" que me refiro não é uma escala ou porcentagem que pode ser mensurável... São gatilhos adicionados no processo de criação da estrutura do seu banco para fazer com que você tenha informações que possam ser organizadas (INDEX - veremos mais adiante o assunto) e co-relacionadas (JOIN - veremos mais adiante também).

Para fazer isso acontecer, vamos adicionar ainda mais o NOT NULL e o UNIQUE. Isso vai fazer com que o seu campo _id não permita valores nulos e que toda a informação que seja inserida nele não possa ser repetida com mais uma ocorrência dentro da mesma tabela.

O tipo é INT sempre, pois é a melhor maneira de ter um identificador! Números são infinitos, organizáveis e o banco é otimizado para trabalhar com esse tipo de recurso.

O tamanho é 11 mas não por regra! 11 é a maior capacidade do campo INT, isso significa que você pode ter até 11 dígitos que é um número beeeeem grande e você não terá problemas por um certo tempo.

E se você pegar um número muiiiiito grande (INT11), que seja incrementado a cada nova inserção (AUTO_INCREMENT), que não pode ser nulo (NOT NULL), que seja positivo (UNSIGNED) e nunca se repita (UNIQUE)…. Está criado o seu campo de identificação!

Com isso, cada tabela do seu banco de dados terá um campo que pode ser reconhecido facilmente pelo seu código, e isso permite você escrever uma query bem mais "resumida" e de uma forma que gere de uma forma bem acelerada…

… Digo isso porque é bem menos custoso para o banco comparar e/ou organizar números do que textos!

A ação do AUTO_INCREMENT é simplesmente adicionar +1 no contador geral da tabela, assim quando um novo registro for contabilizado, você faz a invocação desse atributo e pega o último valor reservado, faz o incremento e insere o registro com esse novo valor.

Mais a frente, vamos ver como criar os relacionamentos entre as tabelas e tudo isso fará uma maior sentido você.

Se você está començando agora na programação ou no banco de dados: Não se assuste com os termos ou com a amplitude do assunto! Observe quais são as funções de cada item destacado aqui no artigo para que você vá se familiarizando com o ambiente!

Se você já conhece o banco e sabe como usar o atributo: Acredito que tenha ficado mais claro o conceito e definição do assunto.

Se você é um expert no banco: Obrigado por ler até aqui :)

Dica:

Se por um acaso você estiver trabalhando com os frameworks que você aprende a desenvolver aqui na UP (tanto do PHP Orientado a Objetos, quanto o WorkControl) e por algum motivo o seu $Create->getResult() (ou o LAST_INSERT_ID referente no seu framework) não estiver trazendo valor nenhum, saiba que provavelmente o campo de identificação não está marcado com a opção para que seja auto incrementado.

Lembre-se que o LAST_INSERT_ID é baseado na sessão da conexão e isso é uma particularidade do MariaDB/MySQL. Caso esteja trabalhando com qualquer outra plataforma que não sejam essas, será necessário dar uma conferida na documentação, ok?

Me fale aqui nos comentários o que achou desse artigo! Você já sabia que era por esses motivos? Fez sentido para você agora esse tipo de recurso?

  • Compartilhe esse post
  • Compartilhar no Facebook00
  • Compartilhar no Google Plus00
  • Compartilhar no Twitter

Olá, deixe seu comentário para Conhecendo o AUTO_INCREMENT no MariaDB

Já temos 8 comentário(s). DEIXE O SEU :)
Rafael Soares Costa

Rafael Soares Costa

nota 1000
★★★★★DIA 01.05.17 20h14RESPONDER
Gustavo Web
Enviando Comentário Fechar :/
Marcos Paulo  Santos

Marcos Paulo Santos

Vlw Gustavo!

Show de bola!!!
★★★★★DIA 01.05.17 03h37RESPONDER
Gustavo Web
Enviando Comentário Fechar :/
Stanley Mendes

Stanley Mendes

Show..
★★★★★DIA 29.04.17 09h13RESPONDER
Gustavo Web
Enviando Comentário Fechar :/
Stanley Mendes

Stanley Mendes

Show..
★★★★★DIA 29.04.17 09h13RESPONDER
Gustavo Web
Enviando Comentário Fechar :/
Luiz Lima

Luiz Lima

100% compreendido! Show!
★★★★★DIA 25.04.17 13h09RESPONDER
Gustavo Web
Enviando Comentário Fechar :/
Luiz Servelo

Luiz Servelo

Boa Gustavão! Aprendi na marra a colocar o AI nas IDs de tabelas... Toda vez q eu ia criar uma APP do WC eu esquecia de colocar esse AI na tabela hahah. Dai ele crashava. Agora da boa!
★★★★★DIA 25.04.17 12h39RESPONDER
Gustavo Web
Enviando Comentário Fechar :/
Gustavo Web

Gustavo Web

Quem que nunca passou por uma dessa não? o.O


O bom é que com o tempo tudo começa a fazer sentido e fica óbvio o porque de cada item... Daí a gente passa a não esquecer mais :)

★★★★★DIA 25.04.17 12h50RESPONDER
Luiz Carlos De Oliveira
Enviando Comentário Fechar :/
Guilherme Natus

Guilherme Natus

Muito bom o artigo Gustavo! Parabéns!
★★★★★DIA 25.04.17 10h49RESPONDER
Gustavo Web
Enviando Comentário Fechar :/
Enviando Comentário Fechar :/