En la lección anterior ha configurado las reglas de navegación para asegurar que los usuarios especifiquen un ID exclusivo para el anuncio clasificado nuevo. Este proceso es frustrante y no es realista porque no querrá que los usuarios del sitio busquen un ID exclusivo a través del procedimiento de ensayo y error. En esta lección, configurará una generación automática de claves para que la base de datos asigne automáticamente un número exclusivo a cada registro nuevo de la base de datos.
La generación automática de claves es un tema complejo pero, para abreviar, una base de datos puede elegir nuevas claves si tiene una tabla especial reservada. Esta tabla debe tener una lista de las claves sin utilizar en una columna (la columna incrementor) y, en la otra columna, una lista ordenada de números comenzando por 1 (la columna identity.) Cuando la base de datos necesite una clave nueva, la toma de la fila cuya columna identity tiene el valor 1, y deja preparada la clave nueva para la próxima vez.
Cuando la base de datos necesita una nueva clave única, busca la fila cuyo valor de la columna identity es 1. El valor de la columna incrementor correspondiente a dicha fila es la siguiente clave disponible. La base de datos utiliza esta clave y actualiza la tabla de modo que la próxima vez habrá una nueva clave disponible.
| Columna Identity | Columna Incrementor |
|---|---|
| 3 | 78 |
| 4 | 3 |
| 1 | 65 |
| 2 | 12 |
Una vez extraída la nueva clave de la tabla, la tabla se actualiza la próxima vez que se necesite una tabla. La base de datos también puede recuperar varias claves de una sola vez, tomando el valor de la columna incrementor de varias filas.
En resumen, para que la generación automática de claves funcione, tan sólo es necesario configurar una tabla de generación de claves con dos columnas: una columna primaria que se utilizará como columna identity y otra para almacenar la siguiente clave disponible. Esta tabla se debe inicializar con un registro cuyo valor de la columna identity sea 1 y cuyo valor de la columna incrementor sea la primera clave disponible a utilizar. Una vez realizada esta configuración, está preparado para utilizar la generación automática de claves.