Nella lezione precedente sono state impostate regole di navigazione per accertarsi che gli utenti immettano un ID univoco per il nuovo annuncio pubblicitario classificato. Questo processo è frustrante e non realistico poiché non si desidera che gli utenti del sito trovino un ID univoco tramite prove ed errori. In questa lezione, verrà impostata la generazione di chiavi automatica per fare in modo che il database assegni automaticamente un numero univoco a ogni nuovo record nel database.
La generazione automatica di chiavi è un argomento complesso; in breve, un database può scegliere nuove chiavi se dispone di una tabella speciale riservata alla generazione di chiavi. Una colonna di questa tabella deve contenere un elenco di chiavi non utilizzate (la colonna incrementi) e l'altra colonna deve contenere un elenco di numeri sequenziali, a partire da 1, (la colonnaidentità). Quando il database ha bisogno di una nuova chiave, la preleva dalla riga con il numero 1 della colonna di identità e ottiene quindi una nuova chiave da utilizzare successivamente.
Quando al database occorre una nuova chiave univoca, la cerca nella riga con il valore 1 della colonna identità. Il valore della colonna di incrementi di questa riga contiene la chiave successiva disponibile. Il database utilizza tale chiave e aggiorna la tabella di modo che la volta successiva sarà disponibile una nuova chiave.
| Colonna delle identità | Colonna degli incrementi |
|---|---|
| 3 | 78 |
| 4 | 3 |
| 1 | 65 |
| 2 | 12 |
Dopo il recupero della nuova chiave disponibile dalla tabella, questa viene aggiornata per la volta successiva che servirà una chiave. Il database è anche in grado di richiamare più chiavi alla volta, ottenendo il valore della colonna degli incrementi di più di una riga.
In breve, per il funzionamento della generazione automatica delle chiavi è sufficiente impostare una tabella per la generazione delle chiavi con due colonne: una colonna principale da utilizzare come colonna delle identità e un'altra colonna per la memorizzazione della chiave successiva disponibile. Questa tabella deve essere inizializzata con un solo record, il cui valore della colonna delle identità e 1 e il cui valore della colonna degli incrementi è la prima chiave disponibile da poter utilizzare. Dopo aver proceduto a tale impostazione, è possibile utilizzare la generazione automatica delle chiavi.