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')