miércoles, 26 de junio de 2013

Llaves primarias auto incrementales en ORACLE 11g

Cuando migramos de MySQL  a ORACLE 11g nos tenemos que enfrentar a una cuestión nueva, ¿Como crear un primary key con autoincrement?, para los escolapios y umpalumpas puede ser todo un dolor de cabeza ya que no existe una opción automática "autoincrement", por lo que hay que elaborar una secuencia y un disparador, he aquí un ejemplo:

create table temasforo(
idtemasfor NUMBER(5) PRIMARY KEY,
autor       VARCHAR2(50) NOT NULL,
fecha       DATE DEFAULT (sysdate),
asunto      LONG  );

create sequence temasforo_seq
  start with 1
  increment by 1
  nomaxvalue;

create or replace
trigger temasforo_trigger
  before insert on temasforo
  referencing OLD as old NEW as new
  for each row
  begin
      :new.idtemasforo:=temasforo_seq.nextval;
    end;

No hay comentarios:

Publicar un comentario