ALTER SEQUENCE - Amazon Aurora DSQL

ALTER SEQUENCE

ALTER SEQUENCE: altera a definição de um gerador de sequência.

Importante

Ao usar sequências, é necessário considerar cuidadosamente o valor do cache. Para ter mais informações, consulte o texto explicativo “Importante” na página CREATE SEQUENCE.

Para obter orientações sobre a melhor forma de usar sequências com base nos padrões de workload, consulte Trabalhar com sequências e colunas de identidade.

Sintaxe compatível

ALTER SEQUENCE [ IF EXISTS ] name [ INCREMENT [ BY ] increment ] [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ] [ [ NO ] CYCLE ] [ START [ WITH ] start ] [ RESTART [ [ WITH ] restart ] ] [ CACHE cache ] [ OWNED BY { table_name.column_name | NONE } ] ALTER SEQUENCE [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER SEQUENCE [ IF EXISTS ] name RENAME TO new_name ALTER SEQUENCE [ IF EXISTS ] name SET SCHEMA new_schema where cache is 1 or cache >= 65536

Descrição

ALTER SEQUENCE altera os parâmetros de um gerador de sequência existente. Todos os parâmetros não definidos especificamente no comando ALTER SEQUENCE mantêm as configurações anteriores.

Para usar ALTER SEQUENCE, a sequência deve pertencer a você. Para alterar o esquema de uma sequência, também é necessário ter o privilégio CREATE no novo esquema. Para alterar o proprietário, você deve poder aplicar SET ROLE ao novo perfil de propriedade, o qual deve ter o privilégio CREATE no esquema da sequência. (Essas restrições determinam que a alteração do proprietário não faz nada que você não possa fazer ao remover e recriar a sequência. No entanto, em todo caso, um superusuário pode alterar a propriedade de qualquer sequência.)

Parâmetros

name

O nome (opcionalmente qualificado para o esquema) de uma sequência a ser alterada.

IF EXISTS

Não gerará um erro se a sequência não existir. Um aviso é emitido nesse caso.

increment

Qualquer cláusula INCREMENT BY increment é opcional. Um valor positivo criará uma sequência crescente; um valor negativo criará uma sequência decrescente. Se não for especificado, o valor de incremento antigo será mantido.

minvalue / NO MINVALUE

A cláusula opcional MINVALUE minvalue determina o valor mínimo que uma sequência pode gerar. Se NO MINVALUE for especificado, serão usados os padrões 1 e do valor mínimo do tipo de dados para sequências crescentes e decrescentes, respectivamente. Se nenhuma dessas opções for especificada, o valor mínimo atual será mantido.

maxvalue / NO MAXVALUE

A cláusula opcional MAXVALUE maxvalue determina o valor máximo da sequência. Se NO MAXVALUE for especificado, serão usados os padrões do valor máximo do tipo de dados e -1 para sequências crescentes e decrescentes, respectivamente. Se nenhuma dessas opções for especificada, o valor máximo atual será mantido.

CYCLE

A palavra-chave CYCLE opcional pode ser usada para permitir que a sequência seja contornada quando o maxvalue ou minvalue for atingido por uma sequência crescente ou decrescente, respectivamente. Se o limite for atingido, o próximo número gerado será o minvalue ou maxvalue, respectivamente.

NO CYCLE

Se a palavra-chave NO CYCLE opcional for especificada, qualquer chamada para nextval depois que a sequência atingir o valor máximo exibirá um erro. Se tanto CYCLE quanto NO CYCLE não forem especificados, o comportamento do ciclo antigo será mantido.

start

A cláusula opcional START WITH start altera o valor inicial registrado da sequência. Isso não tem efeito no valor da sequência atual; simplesmente define o valor que os futuros comandos ALTER SEQUENCE RESTART usarão.

reiniciar

A cláusula opcional RESTART [ WITH restart ] altera o valor atual da sequência. Isso é semelhante a chamar a função setval com is_called = false: o valor especificado será exibido na próxima chamada de nextval. Escrever RESTART sem valor de reinicialização equivale a fornecer o valor inicial que foi registrado por CREATE SEQUENCE ou definido pela última vez porALTER SEQUENCE START WITH.

Ao contrário de uma chamada setval, uma operação RESTART em uma sequência é transacional e impede que transações simultâneas obtenham números da mesma sequência. Se esse não for o modo de operação desejado, deve-se usar setval.

cache

A cláusula CACHE cache permite a pré-alocação e o armazenamento de números de sequência na memória para que o acesso seja mais rápido. O valor deve ser 1 ou algum valor >= 65.536. Se não for especificado, o valor de cache antigo será mantido. Para ter mais informações sobre comportamentos de cache, consulte CREATE SEQUENCE.

OWNED BY table_name.column_name / OWNED BY NONE

A opção OWNED BY faz com que a sequência seja associada a uma coluna específica da tabela, de forma que, se essa coluna (ou a tabela inteira) for eliminada, a sequência também será automaticamente eliminada. Se especificada, essa associação substitui qualquer associação especificada anteriormente para a sequência. A tabela especificada deve ter o mesmo proprietário e estar no mesmo esquema que a sequência. A especificação OWNED BY NONE remove qualquer associação existente, tornando a sequência “independente”.

new_owner

O nome de usuário do novo proprietário da sequência.

new_name

O novo nome da sequência.

new_schema

O novo esquema para a sequência.

Observações

ALTER SEQUENCE não afetará imediatamente os resultados de nextval em backends que tenham valores de sequência pré-alocados (armazenados em cache), a não ser no atual. Eles usarão todos os valores armazenados em cache antes de perceber os parâmetros de geração de sequência alterados. O backend atual será afetado imediatamente.

ALTER SEQUENCE não afeta o status currval da sequência.

ALTER SEQUENCE pode provocar outras transações no OCC.

Por motivos históricos, ALTER TABLE também pode ser usado com sequências, mas as únicas variantes de ALTER TABLE permitidas com sequências são equivalentes aos formulários mostrados acima.

Exemplos

Reinicie uma sequência chamada serial, em 105:

ALTER SEQUENCE serial RESTART WITH 105;

Compatibilidade

ALTER SEQUENCE segue o padrão SQL, exceto para as cláusulas AS, START WITH, OWNED BY, OWNER TO, RENAME TO e SET SCHEMA, que são extensões do PostgreSQL.