O comando ALTER SEQUENCE modifica as propriedades de uma sequência existente ou converte seu tipo.
O PolarDB for XScale oferece suporte a três tipos de sequência: new, group e time. Cada tipo aceita parâmetros específicos, que variam conforme você altera as propriedades da sequência ou a converte para outro tipo.
Observações de uso
Não é possível converter uma sequência do tipo group com múltiplas unidades para outro tipo. Além disso, os parâmetros
UNIT COUNTeINDEXnão podem ser alterados. Tentar essas operações faz com que a sequência pare de funcionar corretamente.Antes de alterar o valor de
START WITH, analise os valores atuais da sequência e a taxa de geração desses valores. DefinirSTART WITHcom um valor muito baixo pode gerar valores duplicados.Ao usar a cláusula
CHANGE TO, o parâmetroSTART WITHé obrigatório. Sem a cláusulaCHANGE TO, o parâmetroSTART WITHtorna-se opcional.
Sequências do tipo new
ALTER SEQUENCE <name> [ CHANGE TO GROUP | TIME ]
START WITH <numeric value>
[ INCREMENT BY <numeric value> ]
[ MAXVALUE <numeric value> ]
[ CYCLE | NOCYCLE ]
|
Parâmetro |
Padrão |
Descrição |
|
|
|
1 |
Valor inicial da sequência. |
|
|
|
1 |
Tamanho do intervalo entre valores consecutivos. Suportado apenas ao modificar propriedades de sequências do tipo new; não se aplica à conversão para os tipos group ou time. |
|
|
|
9223372036854775807 (BIGINT com sinal) |
Valor máximo permitido. Deve ser um número inteiro positivo. Disponível somente para alteração de propriedades em sequências new; não é válido durante a conversão para group ou time. |
|
|
|
|
|
Define o comportamento ao atingir o valor máximo. A opção |
Uma sequência do tipo new só pode ser convertida para uma sequência do tipo group com uma única unidade. Após a conversão para uma sequência do tipo time, o valor original de START WITH perde a validade.
Sequências do tipo group
ALTER SEQUENCE <name> [ CHANGE TO NEW | TIME ]
START WITH <numeric value>
[ INCREMENT BY <numeric value> ]
[ MAXVALUE <numeric value> ]
[ CYCLE | NOCYCLE ]
|
Parâmetro |
Padrão |
Descrição |
|
|
|
1 |
Valor inicial da sequência. |
|
|
|
1 |
Tamanho do intervalo entre valores consecutivos. Válido apenas na conversão de uma sequência group para new. |
|
|
|
9223372036854775807 (BIGINT com sinal) |
Valor máximo permitido. Exige um número inteiro positivo. Aplicável somente ao converter uma sequência group para new. |
|
|
|
|
|
Determina a ação quando o valor máximo é alcançado. Com |
Ao converter uma sequência do tipo group para time, os valores dos parâmetrosSTART WITH,INCREMENT BY,MAXVALUEeCYCLE/NOCYCLEtornam-se inválidos.
Sequências do tipo time
ALTER SEQUENCE <name> [ CHANGE TO NEW | GROUP ]
START WITH <numeric value>
[ INCREMENT BY <numeric value> ]
[ MAXVALUE <numeric value> ]
[ CYCLE | NOCYCLE ]
|
Parâmetro |
Padrão |
Descrição |
|
|
|
1 |
Valor inicial da sequência. |
|
|
|
1 |
Intervalo entre valores consecutivos. Suportado exclusivamente na conversão de sequências time para new. |
|
|
|
9223372036854775807 (BIGINT com sinal) |
Valor máximo permitido. Deve ser um inteiro positivo. Restrito a cenários de conversão de time para new. |
|
|
|
|
|
Especifica o comportamento ao atingir o valor máximo. A configuração |
Na conversão de uma sequência time para group, os valores deSTART WITH,INCREMENT BY,MAXVALUEeCYCLE/NOCYCLEperdem a validade, pois a sequência group resultante conterá apenas uma unidade.
Exemplos
Alterar o valor inicial
ALTER SEQUENCE seq1 START WITH 1000000;
Converter para uma sequência do tipo group
ALTER SEQUENCE seq2 CHANGE TO GROUP START WITH 2000000;
Converter para uma sequência do tipo time
ALTER SEQUENCE seq3 CHANGE TO TIME;
Converter para uma sequência do tipo new com parâmetros padrão
ALTER SEQUENCE seq4 CHANGE TO NEW START WITH 100;
Converter para uma sequência do tipo new com parâmetros explícitos
ALTER SEQUENCE seq5 CHANGE TO NEW START WITH 200 INCREMENT BY 2 MAXVALUE 300 NOCYCLE;