ALTER TABLE
ALTER TABLE altera a definição de uma tabela.
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] action [, ... ] ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] RENAME [ COLUMN ] column_name TO new_column_name ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] RENAME CONSTRAINT constraint_name TO new_constraint_name ALTER TABLE [ IF EXISTS ] name RENAME TO new_name ALTER TABLE [ IF EXISTS ] name SET SCHEMA new_schema where action is one of: ADD [ COLUMN ] [ IF NOT EXISTS ] column_name data_type ADD table_constraint_using_index ALTER [ COLUMN ] column_name { SET GENERATED { ALWAYS | BY DEFAULT } | SET sequence_option | RESTART [ [ WITH ] restart ] } [...] ALTER [ COLUMN ] column_name DROP IDENTITY [ IF EXISTS ] OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } and table_constraint_using_index is: [ CONSTRAINT constraint_name ] UNIQUE USING INDEX index_name
Ações da coluna de identidade
SET GENERATED { ALWAYS | BY DEFAULT }/SET/sequence_optionRESTART-
Esses formulários alteram se uma coluna é uma coluna de identidade ou alteram o atributo de geração de uma coluna de identidade existente. Para mais detalhes, consulte CREATE TABLE. De modo semelhante a
SET DEFAULT, esses formulários afetam apenas o comportamento dos comandosINSERTeUPDATEsubsequentes; eles não fazem com que as linhas que já estão na tabela sejam alteradas.É possível usar a opção
sequence_optioncom ALTER SEQUENCE, comoINCREMENT BY. Esses formulários alteram a sequência subjacente a uma coluna de identidade existente. DROP IDENTITY [ IF EXISTS ]-
Esse formulário remove a propriedade de identidade de uma coluna. Se
DROP IDENTITY IF EXISTSfor especificado e a coluna não for uma coluna de identidade, nenhum erro será gerado. Nesse caso, será emitido um aviso em vez disso.
Adicionar ações de restrição
ADDtable_constraint_using_index-
Este formulário adiciona uma nova restrição
UNIQUEa uma tabela com base em um índice exclusivo existente. Todas as colunas do índice serão incluídas na restrição.O índice deve estar em um estado
VALID; não há suporte para adicionar uma restrição exclusiva usando um índice que ainda esteja em construção.Se um nome de restrição for fornecido, o índice será renomeado para corresponder ao nome da restrição. Caso contrário, a restrição terá o mesmo nome do índice.
Após a execução deste comando, o índice passa a ser “propriedade” da restrição, da mesma forma como se tivesse sido criado por um comando
CREATE UNIQUE INDEX ASYNCregular. Em particular, ao remover a restrição, o índice também será excluído.