sql >> Base de Datos >  >> RDS >> Oracle

¿Qué debo usar en lugar de la secuencia para evitar espacios?

El objetivo principal de las secuencias es proporcionar una fuente de información garantizada. identificadores únicos. Estas son claves técnicas y, en general, su valor real debería ser irrelevante. Quiero decir, ¿necesitas mostrar el número de carpeta al usuario?

Si te molesta, usa NOCACHE. Eso minimizará las brechas que está viendo, y siempre que no cree carpetas con mucha frecuencia, no notará el impacto en el rendimiento por no almacenar en caché un puñado de números. Todavía puede obtener brechas, si una transacción se revierte o falla por cualquier otro motivo, pero deben ser poco frecuentes; si no lo son, ¡tiene cosas más importantes de las que preocuparse que la numeración de sus carpetas!

Otras formas de generar una serie que se incrementa monótonamente son engorrosas de implementar (disparadores sobre tablas de control de código) o no se garantiza que sean únicas (usando max(id)+1 en un gatillo). Si desea utilizar una tabla de control de código, es decir, una tabla que realiza un seguimiento específico de la última ID de carpeta asignada, debe echar un vistazo en una respuesta anterior que escribí que debería cómo implementar uno. La única ventaja de una tabla de control de código es que podemos mantener cuentas con un grupo. Por lo tanto, podría tener una serie de identificadores de carpetas para cada usuario e incrementarlos de forma independiente.