La generazione chiavi automatica è un argomento complesso ma, in breve, un database può scegliere nuove chiavi, se presenta una tabella speciale riservata alla generazione chiavi. Questa tabella deve avere un elenco di chiavi non utilizzate in una colonna (la colonna di incremento) e un elenco di numeri in ordine a partire da 1 nell'altra colonna (la colonna di identità). Quando il database ha bisogno di una nuova chiave, richiama la chiave dalla riga con 1 nella colonna di identità e dispone così di una nuova chiave, pronta per la volta successiva.
Quando il database ha bisogno di una nuova chiave univoca, individua la riga con un valore pari a 1 per la colonna di identità. Il valore della colonna di incremento di questa riga contiene la successiva chiave disponibile. Il database utilizza questa chiave ed aggiorna la tabella in modo che una nuova chiave sia disponibile la volta successiva.
| Colonna di identità | Colonna di incremento |
|---|---|
| 3 | 78 |
| 4 | 3 |
| 1 | 65 |
| 2 | 12 |
Quando la successiva chiave disponibile viene richiamata dalla tabella, la tabella viene aggiornata per la volta successiva in cui è necessaria una chiave. Il database può inoltre richiamare più chiavi contemporaneamente, utilizzando il valore della colonna di incremento di più di una riga.
In breve, per il funzionamento della generazione chiavi automatica, è necessario che una tabella di generazione chiavi sia impostata con due colonne: una colonna chiave primaria da utilizzare come colonna di identità e una colonna per l'archiviazione della successiva chiave disponibile. Questa tabella deve essere inizializzata con un record il cui valore della colonna di identità è 1 e il cui valore della colonna di incremento è la prima chiave disponibile da utilizzare. Una volta impostato questo record, si è pronti ad utilizzare la generazione chiavi automatica.