Este metodo de criacao de tabela existe aos montes na internet, porem este codigo SQL virou padrao para a criacao das minhas tabelas no Oracle 10g que tenham um campo chave primaria auto incrementavel.
Codigo SQL :
Codigo SQL :
-- cria tabela
create table DBTABELA
(
CODCAMPOAUTO NUMBER not null,
CAMPOTEXTO VARCHAR2(9),
CAMPONUMERO NUMBER(10,2),
CONSTRAINT PKCODCAMPOAUTO PRIMARY KEY (CODCAMPOAUTO)
);
-- cria sequence
create sequence CODCAMPOAUTO_SEQ;
-- isto evita que ocorra saltos na contagem do "proximo"
-- existe este erro no Oracle 10g nao sei pq :S
alter sequence CODCAMPOAUTO_SEQ NOCACHE;
-- cria trigger que efetua a operacao de auto incremento
create OR replace trigger trg_bi_DBTABELA
before insert on DBTABELA
for each row
begin
if :new.CODCAMPOAUTO is null then
select CODCAMPOAUTO_SEQ.nextval
into :new.CODCAMPOAUTO
from dual;
end if;
end;