Oracle Database
Secuencias
Buscar..
Sintaxis
- CREAR SECUENCIA SCHEMA.SEQUENCE {INCREMENTO DE INTEGER | COMENZAR CON INTEGER | MAXVALUE INTEGER | INTEGER NOMAXVALUE | MINVALUE INTEGER | NOMINVALUE INTEGER | CICLO INTEGER | INTEGER DE CICLO | CACHE | NOCACHE | ORDEN | NOODER}
Parámetros
Parámetro | Detalles |
---|---|
esquema | nombre de esquema |
incrementar por | intervalo entre los números |
Empezar con | primer numero necesario |
valor máximo | Valor máximo para la secuencia. |
nomaxvalue | El valor máximo está predeterminado |
minvalor | valor mínimo para la secuencia |
valor nominal | el valor mínimo está predeterminado |
ciclo | Restablecer al inicio después de alcanzar este valor. |
nociciclo | Defecto |
cache | Límite de Preubicación |
nocache | Defecto |
orden | Garantizar el orden de los números. |
sin orden | defecto |
Creando una secuencia: Ejemplo
Propósito
Utilice la instrucción CREATE SEQUENCE para crear una secuencia, que es un objeto de base de datos desde el cual varios usuarios pueden generar enteros únicos. Puedes usar secuencias para generar automáticamente valores de clave primaria.
Cuando se genera un número de secuencia, la secuencia se incrementa, independientemente de la transacción confirmada o retrotraída. Si dos usuarios incrementan simultáneamente la misma secuencia, entonces los números de secuencia que cada usuario adquiere pueden tener huecos, ya que el otro usuario está generando números de secuencia. Un usuario nunca puede adquirir el número de secuencia generado por otro usuario. Después de que un usuario genere un valor de secuencia, ese usuario puede continuar accediendo a ese valor independientemente de si la secuencia es incrementada por otro usuario.
Los números de secuencia se generan independientemente de las tablas, por lo que la misma secuencia se puede usar para una o varias tablas. Es posible que los números de secuencia individuales parezcan omitidos, ya que se generaron y usaron en una transacción que finalmente se retrotrajo. Además, un solo usuario puede no darse cuenta de que otros usuarios están dibujando desde la misma secuencia.
Después de crear una secuencia, puede acceder a sus valores en sentencias de SQL con la pseudocolumna CURRVAL, que devuelve el valor actual de la secuencia, o la pseudocolumna NEXTVAL, que incrementa la secuencia y devuelve el nuevo valor.
Prerrequisitos
Para crear una secuencia en su propio esquema, debe tener el privilegio del sistema CREATE SEQUENCE.
Para crear una secuencia en el esquema de otro usuario, debe tener el privilegio del sistema CREAR CUALQUIER SECUENCIA.
Creación de una secuencia: Ejemplo La siguiente declaración crea la secuencia clients_seq en el esquema de muestra oe. Esta secuencia podría usarse para proporcionar números de ID de cliente cuando se agregan filas a la tabla de clientes.
CREATE SEQUENCE customers_seq
START WITH 1000
INCREMENT BY 1
NOCACHE
NOCYCLE;
La primera referencia a customers_seq.nextval devuelve 1000. La segunda devuelve 1001. Cada referencia posterior devolverá un valor 1 mayor que la referencia anterior.