martes, 17 de febrero de 2009

Sequence

Create sequence

Defina una secuencia para generar números secuenciales automáticamente

CREATE SEQUENCE dept_deptno
Increment by 1
Start with 91
Maxvalue 100
Nocache
Nocycle;

Sequence es el nombre del generador de secuencia

Increment by n especifica el intervalo entre los números de la secuencia donde n es un entero. Si la cláusula es omitida, la secuencia se incrementará en 1.

Start with n especifica el valor máximo que la secuencia puede generar.

Maxvalue n especifica el valor máximo que la secuencia puede generar

Nomaxvalue especifica un valor máximo de 10^27 para una secuencia ascendente y -1 para una secuencia descendente .esta es la opción por defecto

Minvalue n especifica el valor mínimo de la secuencia.

Nominvalue especifica un valor mínimo de 1 para una secuencia ascendente y para una secuencia descendente. Esta es la opción por defecto

Cycle | nocycle especifica que la secuencia continua generando valores después de haber alcanzado su valor máximo o su valor mínimo, o bien no genera valore adicionales. La opción por defecto es NOCYCLE

Cache n | nocache especifica cuantos valores serán preasignados y mantenidos en la memoria del servidor oracle. Poro defecto, esta cantidad será igual a 20 valores.


Verificación de secuencias

SELECT sequence_name, min_value, max_value, increment_by, last_number
From user_sequences;

Modificación de una secuencia

Alter sequence dept_deptno
Increment by 1
Maxvalue 90
Nocache
Nocycle;

Eliminación de una secuencia:

Drop sequence dept_depto;

Nextval retorna el próximo valor disponible de la secuencia. Devuelve un valor único cada vez que es referenciada, aún por diferentes usuarios.

Ejemplo:

Insertar un nuevo departamento llamado “MARKETING” en san diego.

INSERT INTO dept(deptno, dname, loc)
VALUES (dept_deptno.NEXTVAL, ‘MARKETING’, ‘SAN DIEGO’);

No hay comentarios: