top of page

Tratando Secuencias en SQL


Una secuencia es conocida por ser una tabla con un campo numƩrico en el cual almacenamos un valor.


Las secuencias se nos crean para que nos genere valores enteros Ćŗnicos y consecutivos.


Lo utilizamos generalmente para generar valores para las claves primarias (pks).


Sentencia crear una secuencia:

  • CREATE SEQUENCE [esquema.] Nombre_secuencia [START WITH nĆŗmero] [INCREMENT BY nĆŗmero] [MAXVALUE nĆŗmero | NOMAXVALUE] [MINVALUE nĆŗmero | NOMINVALUE] [CYCLE | NOCYCLE];


Ejemplo crear una secuencia:

  • CREATE SEQUENCE hr.nueva_seq START WITH 1;


Opciones para crear una secuencia:

  • INCREMENT BY:

    • El valor que vamos a sumar al valor actual.

    • Podemos usar un nĆŗmero negativo o contrario de 0.

    • Si no se indica, por defecto es 1.


  • MAXVALUE:

    • Nos indica el valor mĆ”ximo que puede obtener la secuencia.

    • Si no se indica, por defecto es 99999999999999999999999999.


  • MINVALUE:

    • Nos indica el valor mĆ­nimo al que puede obtener la secuencia.

    • Si no se indica, por defecto es 1.


  • CYCLE:

    • Nos indica cuando lleguemos al valor mĆ”ximo, se reinicie al mĆ­nimo valor nuevamente.

    • Si no se indica, por defecto la secuencia se crea nocycle.


Sentencias para recuperar los valores:

  • NEXTVAL: regresa el siguiente valor del valor actual (incrementĆ”ndolo o decrementĆ”ndolo).

    • Ejemplo: SELECT nueva_seq.NEXTVAL FROM dual;


  • CURRVAL: nos regresa el valor actual de la secuencia.

    • Ejemplo: SELECT nueva_seq.currval FROM dual;


Ejemplo de uso de secuencias en un insert:

  • Ejemplo: INSERT INTO hr.jobs VALUES (hr.nueva_seq.currval, 'designer', 1700, 2500);


Sentencia y opciones para modificar una sentencia:

  • ALTER SEQUENCE [esquema.] Nombre_secuencia [INCREMENT BY nĆŗmero] [MAXVALUE nĆŗmero | NOMAXVALUE] [MINVALUE nĆŗmero | NOMINVALUE] [CYCLE | NOCYCLE]

  • El Ćŗnico valor que no se puede modificar de una sentencia es el valor de comienzo.


Ejemplo para incrementar el valor de la secuencia:

  • ALTER SEQUENCE hr.nueva2_seq INCREMENT BY 3;


Sentencia para eliminar una secuencia:

  • DROP SEQUENCE nombre_secuencias;

    • Ejemplo: DROP SEQUENCE nueva2_seq;


Sentencia para ver todas las secuencias a la que se tiene acceso:

  • SELECT * FROM all_sequences;


Sentencia para ver todos los objetos a los que se tiene acceso:

  • SELECT * FROM all_objects;

oferta en cursos online
bottom of page