ALTER SEQUENCE

Nome

ALTER SEQUENCE  --  altera a definição de um gerador de seqüência

Sinopse

ALTER SEQUENCE nome [ INCREMENT [ BY ] incremento ]
    [ MINVALUE valor_mínimo | NO MINVALUE ] [ MAXVALUE valor_máximo | NO MAXVALUE ]
    [ RESTART [ WITH ] início ] [ CACHE cache ] [ [ NO ] CYCLE ]

Descrição

O comando ALTER SEQUENCE altera os parâmetros de um gerador de seqüência existente. Os parâmetros que não são definidos explicitamente no comando ALTER SEQUENCE mantêm suas definições anteriores.

Parâmetros

nome

O nome (opcionalmente qualificado pelo esquema) da seqüência a ser alterada.

incremento

A cláusula INCREMENT BY incremento é opcional. Um valor positivo produz uma seqüência ascendente, enquanto um valor negativo produz uma seqüência descendente. Se não for especificado, o valor anterior do incremento será mantido.

valor_mínimo
NO MINVALUE

A cláusula opcional MINVALUE valor_mínimo determina o valor mínimo que a seqüência pode gerar. Se for especificado NO MINVALUE, serão utilizados os valores padrão 1 e -263-1 para as seqüências ascendentes e descendentes, respectivamente. Se nenhuma das duas opções for especificada, o valor mínimo corrente será mantido.

valor_máximo
NO MAXVALUE

A cláusula opcional MAXVALUE valor_máximo determina o valor máximo que a seqüência pode gerar. Se for especificado NO MAXVALUE, serão utilizados os valores padrão 263-1 e -1, para seqüências ascendentes e descendentes, respectivamente. Se nenhuma das duas opções for especificada, o valor máximo corrente será mantido.

início

A cláusula opcional RESTART WITH início altera o valor corrente da seqüência.

cache

A cláusula CACHE cache permite que números da seqüência sejam pré-alocados e armazenados em memória para obter um acesso mais rápido. O valor mínimo é 1 (somente um valor pode ser gerado de cada vez, ou seja, sem cache). Se não for especificado, será mantido o valor anterior de cache.

CYCLE

A palavra chave opcional CYCLE pode ser utilizada para permitir uma seqüência ascendente ou descendente reiniciar quando atingir o valor_máximo ou o valor_mínimo, respectivamente. Se o limite for atingido, o próximo número gerado será o valor_mínimo ou o valor_máximo, respectivamente.

NO CYCLE

Se for especificada a palavra chave opcional NO CYCLE, todas as chamadas a nextval após a seqüência ter atingido seu valor máximo retornam um erro. Se não for especificado nem CYCLE nem NO CYCLE, será mantido o comportamento anterior para o ciclo.

Exemplos

Reiniciar uma seqüência chamada serial, em 105:

ALTER SEQUENCE serial RESTART WITH 105;

Observações

Para evitar o bloqueio de transações simultâneas que obtêm números a partir de uma mesma seqüência, os efeitos do comando ALTER SEQUENCE sobre os parâmetros de geração da seqüência nunca são desfeitos (rollback); as mudanças passam a valer imediatamente, não sendo reversíveis.

O comando ALTER SEQUENCE não afeta imediatamente os resultados de nextval nos processos servidor que pré-alocaram (armazenaram no cache) valores da seqüência, a não ser no processo servidor corrente. Os demais processos servidor utilizarão todos os valores pré-alocados antes de perceberem a mudança dos parâmetros de geração da seqüência. O processo servidor corrente é afetado imediatamente.

Compatibilidade

O comando ALTER SEQUENCE está em conformidade com o SQL:2003.

SourceForge.net Logo CSS válido!