La selección de la clave primaria en una tabla SQL requiere conocimiento, experiencia, sentido común, y una pizca de creatividad. A veces la entidad representada por la tabla ya tiene una identificación intrínseca. Por ejemplo, el apartamento “TorreXMen-15-01”, el cual está ubicado en la Torre X-Men, Piso 15, Apartamento #1, tiene esa identificación antes de que su record sea adicionado a una tabla donde se almacenan los Apartamentos a los cuales les damos servicio. Muchas veces es preferible asignar un número secuencial arbitrario, en lugar de asumir que atributos tales como Cédula, Pasaporte, Social Security Number son intrínsecos, ya que no tenemos el control de esos códigos, y esas instituciones podrían cambiar la numeración en el futuro. Hay varias estrategias que se pueden usar para incrementar una clave secuencial de manera óptima, y que garantice la creación de registros sin que haya repetición. Podríamos usar SQL SELECT MAX(id) + 1, para incrementar la clave, usado ANSI SQL. El Servidor MySQL usa AUTO_INCREMENT, mientras Microsoft SQL Server usa IDENTITY para incrementar la clave automáticamente. Oracle usa SEQUENCE que es un objeto aparte para almacenar secuencia. También, podemos implementar nuestra propia solución en ANSI SQL con una Tabla de Secuencias y una Función Almacenada o Stored Function que nos retorne la próxima clave a ser asignada.
A) Clave Secuencial en SQL – 1 de 2