Como criar sequence no Oracle

Introdução à sequence no Oracle
Neste artigo, explicarei de forma resumida o que é uma sequence e como criar uma sequence no Oracle.
O que é uma Sequence
O que é uma Sequence , uma sequência é um objeto de banco de dados que gera números únicos em ordem sequencial. Geralmente utilizamos as sequências para criar valores de chave primária de forma automática sem a necessidade de inserirmos de forma manual ao realizarmos uma inserção no banco.
Elas são especialmente úteis quando você precisa garantir que cada registro em uma tabela tenha um identificador único.
Como criar uma Sequence no Oracle
Para criar uma sequência, usamos o comando `CREATE SEQUENCE` acompanhado de alguns parâmetros, logo abaixo deixo um exemplo básico de criação de uma sequence:
CREATE SEQUENCE minha_sequencia
START WITH 1
INCREMENT BY 1
NOCACHE;
Abaixo deixo uma breve explicação do código que implementei acima:
- START WITH 1: Defino o valor inicial da sequência.
- INCREMENT BY 1: Define que o incremento entre cada valor gerado, neste exemplo escolhi 1;
- NOCACHE: Indica que o valor da sequência fica armazenado em cache;
Como utilizar uma Sequence em uma Inserção
Depois que criar a sequência, você pode usá-la em uma inserção de dados no banco usando a instrução INSERT
para gerar valores únicos.
Para isso usamos a função NEXTVAL
da sequência, que é usada para obter o próximo valor da sequence.
INSERT INTO minha_tabela (id, nome, idade)
VALUES (minha_sequencia.NEXTVAL, 'Paulo', 32);
Explicação do código que implementei acima:
- No exemplo acima, utilizei a função (
NEXTVAL
) da sequence que criei(minha_sequencia)
para obter o próximo valor da sequência e utilizei o valor retornado para inserir na colunaid
da tabelaminha_tabela
.
Considerações sobre Performance
- Cache: Quando usamos a opção
CACHE
pode melhorar a performance quando você precisa armazenar um conjunto de valores da sequência na memória. Isso reduzir o número de acessos ao disco. - NOCACHE: Embora
NOCACHE
garanta que os valores sejam gerados sequencialmente sem lacunas, isso pode impactar a performance em sistemas que possuem uma alta concorrência.
Referências
addressing-use-sequences-oracle