domingo, 26 de mayo de 2013

Autoincrement en Oracle

Oracle, a diferencia de otros motores de base de datos como MySql, no soporta la instrucción Autoincrement, pero siempre podemos hacer uso de esa característica.

Para hacerlo, debemos primero crear una secuencia, que es donde llevaremos el incremento. La secuencia puede crearse de modo gráfico, o ejecutando un script como este: 

create sequence ejemplo_seq
start with 1
increment by 1
nomaxvalue;

Donde podemos especificar el número con el que iniciará y el incremento, en este caso lo incrementamos en 1




El segundo paso es crear un trigger (o disparador) para correr la secuencia. También lo podemos crear en forma gráfica o con el siguiente script:

create trigger ejemplo_trigger
before insert on  <nombre_tabla>
for each row
begin
select ejemplo_seq.nextval into :new.id from dual;
end;

Con la instrucción "select ejemplo_seq.nextval into :new.id from dual;" le indicamos al trigger que ejecute la secuencia con el siguiente valor y lo asigne al nuevo registro que estamos creando.


No hay comentarios:

Publicar un comentario

Gracias por tu comentario! :)