Oracle e seu objeto Sequence
Entenda como funciona a Sequence no Oracle
Para utilizar um campo com Auto-Numeração ou Identity como é conhecido por vários sistemas no mercado o Oracle Database traz um objeto chamado SEQUENCE no qual é responsável por essa atividade.
Características
- Acelera a busca do próximo valor a ser utilizado caso esteja na memória;
- Retira do programador a responsabilidade de ficar controlando o "Next
Value" de um determinado campo;
- Geralmente utilizada em campos que tem a Constraint Primary Key;
- Pode ser um objeto compartilhado, ou seja, pode ser utilizado por várias
tabelas ao mesmo tempo;
- Gera números únicos automaticamente.
Parâmetros
CREATE SEQUENCE <name>
INCREMENT BY n
START WITH n
MAXVALUE n
NOCYCLE
CACHE n;
Increment by |
irá adicionar ‘n’ em cada número gerado; |
Start |
valor no qual a sequence irá iniciar; |
MaxValue |
irá gerar no máximo até o valor ’n’; |
NoCycle |
Não irá continuar caso o tamanho máximo chegue ao seu limite; |
Cache |
quantidade de números gerados na memória para facilitar a utilização da sequence. Ao utilizar o cache tem um ganho muito grande no momento da utilização do "Next Value", porém, todos os números que estão na memória e ainda não foram utilizados serão perdidos caso ocorra algum problema com a SGA. |
Exemplo prático
-- Cria Sequência
create sequence seq_DBCenter
increment by 1
start with 1
maxvalue 500
nocycle
cache 10;
-- Cria Tabela
create table tb_aluno
(codigo number(3),
nome varchar2(50));
-- Inclui registro na tabela criada utilizando a sequence SEQ_DBCENTER
insert into tb_aluno (codigo, nome)
values (seq_DBCenter.nextval, 'Felipe');
Conclusão
A utilização de Sequence é considerada uma das “Best Practices” no mercado.