ORACLE - Creación de Secuencias para campos autonumericos

La codificación numérica de por ejemplo un producto se puede realizar con una creación de una secuencia que automáticamente genera los números enteros en orden ascendente, no siendo necesario recordar cuál fue el último número asignado ; esto evita la duplicidad de códigos.

La secuencia es un objeto que genera valores enteros únicos y se emplean para crear claves primarias numéricas, con el uso del siguiente mandato:

CREATE SEQUENCE codigo_producto INCREMENT BY 1 START WITH 100;

En este caso el primer numero generado será 100, porque le pusimos que comience desde 100


Para registrar un nuevo código con la secuencia definida anteriormente se usa la columna codigo_producto.NEXTVAL, la cual nos dará el siguiente valor que le corresponde a la secuencia.

Para conocer el valor actual de la secuencia, o sea, el último código asignado, se usa la columna codigo_producto.CURRVAL, desde la tabla DUAL del sistema, cuyo fin es poder consultar pseudo_columnas :

SELECT usuario,sysdate,codigo_producto.currval FROM DUAL;

donde:

1.- usuario es el nombre del usuario
2.- sysdate es la fecha del sistema
3.- codigo_producto.currval es el último valor asignado a la secuencia.

EJEMPLO:
INSERT INTO PRODUCTOS_SUC VALUES( codigo_producto.NEXTVAL,'ZAPATOS' );

No hay comentarios: