A geração automática de chaves é um tópico complexo mas, em resumo, um banco de dados pode escolher novas chaves se tiver uma tabela especial reservada para a geração de chaves. Essa tabela deve ter uma lista de chaves não utilizadas em uma coluna (a coluna incrementadora) e uma lista de números em ordem começando com 1 na outra coluna (a coluna de identidade). Quando o banco de dados precisar de uma nova chave, ele obterá a chave da coluna com o 1 na coluna de identidade e, em seguida, deixará uma nova chave pronta para a próxima vez.
Quando o banco de dados precisa de uma nova chave exclusiva, ele localiza a linha com um valor de 1 na coluna de identidade. O valor da coluna incrementadora dessa linha contém a próxima chave disponível. O banco de dados utiliza essa chave e atualiza a tabela para que uma nova chave esteja disponível na próxima vez.
| Coluna de Identidade | Coluna Incrementadora |
|---|---|
| 3 | 78 |
| 4 | 3 |
| 1 | 65 |
| 2 | 12 |
Depois que a próxima chave disponível for buscada da tabela, a tabela será atualizada para a próxima vez em que uma chave for necessária. O banco de dados também pode recuperar várias chaves de um só vez tomando o valor da coluna incrementadora de mais de uma linha.
Em resumo, para que a geração automática de chaves funcione, é necessário ter apenas uma tabela de geração de chaves configurada com duas colunas: uma coluna de chave primária para uso como uma coluna de identidade e uma coluna para armazenar a próxima chave disponível. Essa tabela deve ser inicializada com um registro cujo valor na coluna de identidade seja 1 e cujo valor na coluna incrementadora seja a primeira chave disponível para ser utilizada. Depois que você tiver essa configuração, estará pronto para utilizar a geração automática de chaves.