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