Sequence é um objeto do Database que possibilita a geração de valores, normalmente com características de valores únicos. A utilização de sequences possibilita uma maior concorrência, evita problemas de performance e mantém a integridade dos números gerados (evitando a geração de duplicidades).

Características:

 Os valores podem ser de qualquer data type com escala de zero: SMALLINTBIGINTINTEGER e DECIMAL;

  • Os valores podem residir em cache para aumentar a performance;
  • O contador de valores é recuperável, ou seja, é mantido em uma estrutura de logs que quando necessário pode ser recuperado.

  Expressões usadas:

  • NEXT VALUE expression: retorna o próximo valor para aquela sequence definida;
  • PREVIOUS VALUE expression: retorna o mais recente valor gerado para aquela sequence.

       Exemplos:

Criando Sequence com parâmetros default:

Criando Sequence com parâmetros:

  • start with: informa com qual número será inicializado;
  • increment by: qual vai ser o incremento pra o contador;
  • maxvalue: qual o número máximo a ser atingido;
  • nocycle: quando atingir o número máximo, a contagem não será reinicializada;
  • cache: quantos números estarão em memória, otimizando a consulta. 

Então teremos uma Sequence chamada db2admin.seq_cont01 começando o contador com o número 10, incremento de 1 em 1, número máximo de 200, sem ciclos e com 20 números em memória:

Utilizando a Sequence para incluir valores em uma tabela:

* Consultando o valor atual da Sequence: