Usando o objeto Sequence do Oracle

Veja neste artigo como usar o objeto sequence do oracle.

Se você já usou o SQL Server, deve conhecer a propriedade Identity. Com esta propriedade um campo do tipo Int, é incrementado automaticamente. E no oracle como criamos um campo que é incrementado automaticamente? Para isso temos o objeto Sequence.

Você já deve ter entendido o que é uma Sequence, mas vamos usar uma definição mais formal…

Sequences são objetos que geram números sequenciais dentro do Oracle. São excelentes em termos de performance já que armazenam um range de números no cache e também porque tiram do desenvolvedor a responsabilidade de gerenciar a geração de Ids em casos de multiplos acessos. As sequences são objetos muito úteis para o desenvolvedor (como eu já disse…) pois são muito performáticos.

Criando uma Sequence

Para criar uma sequence usamos a sintaxe abaixo.

CREATE SEQUENCE sqTeste MINVALUE 1 MAXVALUE 300 START WITH 1 INCREMENT BY 1 CACHE 20;

O comando acima cria um objeto do tipo Sequence, chamado sqTeste, possui o valor mínimo de 1, e pode chegar ao valor máximo de 300, esta sequence inicia com o valor 1, é incrementada de 1 em 1 e armazena no cache um range de 20 números.

Simples não? Vamos detalhar cada uma das opções que podemos usar na criação de uma Sequence:

Agora que você já sabe como criar um sequence, vamos ver o que eu considero o seu principal uso, fazer um Insert em uma tabela que possui um campo numérico como chave primária.

INSERT INTO TBLCLIENTE (ID, NOME) VALUES (sqTeste.nextval, 'Adonirandina')

O NextVal retorna o próximo valor livre da sequence.

Para verificar qual o valor atual da sequence você pode usar o seguinte comando:select sqTeste.currval from dual

Conclusão

Vimos neste artigo que as sequences são excelentes recursos, para a geração de identificadores únicos. Use-as sempre que for preciso!

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados