Mostrando entradas con la etiqueta oracle 11g. Mostrar todas las entradas
Mostrando entradas con la etiqueta oracle 11g. Mostrar todas las entradas

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;