Use a instrução CREATE SEQUENCE para criar uma sequência. Uma sequência é um objeto de banco de dados a partir do qual vários usuários podem gerar números inteiros exclusivos.
Após a criação de uma sequência, é possível acessar seu valor na instrução SQL com a instrução NEXT VALUE FOR (que incrementa a sequência e retorna o novo valor).
O sistema gera números de sequência independentemente de a transação ser confirmada ou recuperada. Se dois usuários incrementarem simultaneamente a mesma sequência, os números da sequência adquiridos por cada usuário poderão ter diferenças, pois o outro usuário está gerando números de sequência. Nenhum usuário, no entanto, poderá adquirir o número de sequência gerado pelo outro usuário.
CREATE SEQUENCE <seq_name>
[ AS <datatype> ]
[ START WITH <start_value> ]
[ INCREMENT BY <increment> ]
[ NO MINVALUE | MINVALUE <minimum_value> ]
[ NO MAXVALUE | MAXVALUE <maximum_value> ]
[ NO CYCLE | CYCLE ];
| Entrada | Descrição |
|---|---|
| <seq_name> | O nome da sequência. |
| <datatype> | O tipo de dados. O valor pode ser qualquer tipo de número inteiro exato, como byteint, smallint, integer ou bigint. Se você não especificar essa opção, o tipo de dados padrão será bigint. Para obter uma descrição dos tipos de dados e seus intervalos, consulte Tabela 1. |
| START WITH | O valor inicial. Use esta cláusula para iniciar uma sequência ascendente em um valor maior que o mínimo ou para iniciar uma sequência decrescente em um valor menor que seu máximo. Para sequências ascendentes, o valor padrão será o valor mínimo da sequência. Para sequências decrescentes, o valor padrão será o valor máximo da sequência. Este valor de número inteiro deve estar entre o minvalue e maxvalue do tipo de dado de sequência. |
| INCREMENT BY | O valor de incremento. O valor de número inteiro pode ser qualquer número inteiro positivo ou negativo, mas não pode ser zero. A magnitude desse valor deve ser menor que a diferença de minvalue e maxvalue. Se você especificar um valor positivo, é possível criar uma sequência ascendente. Se você especificar um valor negativo, uma sequência decrescente será criada. Se você não especificar essa opção, o padrão é 1. |
| NO MINVALUE | MINVALUE | O valor mínimo da sequência. O padrão é NO MINVALUE, que é equivalente a especificar um valor mínimo de 1. MINVALUE deve ser menor que ou igual a START WITH e deve ser menor que MAXVALUE. |
| NO MAXVALUE | MAXVALUE | O valor máximo que a sequência pode ter. O padrão é NO MAXVALUE, o que resulta no maior valor para o tipo de dados especificado. MAXVALUE deve ser igual a ou maior que START WITH e deve ser maior que MINVALUE. Para obter uma descrição dos intervalos de tipo de dados, consulte Tabela 1. |
| NO CYCLE | CYCLE | Se a sequência continua gerando valores após atingir seu valor máximo (em uma sequência ascendente) ou seu valor mínimo (em uma sequência decrescente). O padrão é NO CYCLE, o que significa que a sequência para ao atingir seu último valor. Se você especificar CYCLE, quando uma sequência ascendente atingir o valor máximo, ela usará seu valor mínimo mais próximo. Quando uma sequência decrescente atingir seu valor mínimo, ela usará seu valor máximo próximo. |
| Saída | Descrição |
|---|---|
| CREATE SEQUENCE | O comando foi bem-sucedido. |
Você deve ser o usuário administrador, o proprietário do banco de dados ou esquema ou a sua conta deve ter a permissão de administração Criar Sequência.
CREATE SEQUENCE sequence1 As integer START WITH 11 INCREMENT BY 2
MINVALUE 1 MAXVALUE 100 NO CYCLE;