quarta-feira, 3 de novembro de 2010

Oracle: Criando sequence




Quando comecei a criar tabelas e guardar informações em banco de dados comecei pelo Oracle e depois usei durante um tempo o Msql, mas logo voltei para o Oracle.
No Msql existe uma função chamada AUTO_INCREMENT que pode ser utilizada para incrementar um id de uma tabela sozinho, que precisemos nos preocupar com isso. Porém no Oracle não existe esta função o que me levou durante um tempo a pesquisar sobre o assunto, uma solução que encontrei para tal problema foi a criação de SEQUENCE, que funciona quase da mesma maneira.

Criando uma SEQUENCE

Sintaxe:

CREATE SEQUENCE nome_sequence MINVALUE valor_minimo MAXVALUE valor_maximo INCREMENT BY valor_incremento START WITH valor_inicial CACHE valor_cache NOORDER NOCYLE

nome_sequencia = Nome que será dado a sequence.
valor_minimo = Valor mínimo da sequencie.
valor_maximo = Valor máximo que a sequence atingirá.
valor_incremento = Valor que será incrementado cada vez que uma sequence for requerida
valor_inicial  = Valor inicial da sequence, valor que iniciará a mesma.
valor_cache = Valor que informa o número de valores que o cache poderá conter, para uma consulta rápida.

Exemplo:

CREATE SEQUENCE SEQ_ID MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE ;


Utilizando a sequence


Agora que sequence foi criada para utiliza-la, pendo seu próximo valor:

Sintaxe:
        nome_sequence.nextVal

Exemplo:
Existe uma tabela com as colunas id e nome, chama LISTA_CHAMADA:
Para inserir dados na mesma utilizando a sequence faremos o seguinte:

INSERT INTO LISTA_CHAMADA VALUES(seq_id.nextVal, 'Maria')

Nenhum comentário:

Postar um comentário