ALTER TABLE
ALTER TABLE altera a definição de uma tabela.
Sintaxe compatível
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 [ STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT } ] ALTER [ COLUMN ] column_name SET DEFAULT expression ALTER [ COLUMN ] column_name DROP DEFAULT ALTER [ COLUMN ] column_name DROP NOT NULL ALTER [ COLUMN ] column_name DROP EXPRESSION [ IF EXISTS ] ALTER [ COLUMN ] column_name ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( sequence_options ) ] ALTER [ COLUMN ] column_name { SET GENERATED { ALWAYS | BY DEFAULT } | SET sequence_option | RESTART [ [ WITH ] restart ] } [...] ALTER [ COLUMN ] column_name DROP IDENTITY [ IF EXISTS ] ALTER [ COLUMN ] column_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT } ADD table_constraint_using_index DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ] OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } and table_constraint_using_index is: [ CONSTRAINT constraint_name ] UNIQUE USING INDEX index_name
Descrição
ADD [ COLUMN ] [ IF NOT EXISTS ]-
Este formulário adiciona uma nova coluna à tabela, usando a mesma sintaxe de CREATE TABLE. Se
IF NOT EXISTSfor especificado e já existir uma coluna com esse nome, nenhum erro será gerado. SET/DROP DEFAULT-
Esses formulários definem ou removem o valor padrão de uma coluna (a remoção equivale a definir o valor padrão como NULL). O novo valor padrão será aplicado apenas a comandos
INSERTouUPDATEsubsequentes; ele não altera as linhas já existentes na tabela. DROP NOT NULL-
Esse formulário altera uma coluna para permitir valores nulos.
DROP EXPRESSION [ IF EXISTS ]-
Esse formulário transforma uma coluna gerada armazenada em uma coluna base comum. Os dados existentes na coluna são preservados, mas alterações futuras deixarão de aplicar a expressão de geração. Se
DROP EXPRESSION IF EXISTSfor especificado e a coluna não for uma coluna gerada, nenhum erro será gerado. Nesse caso, será emitido um aviso em vez disso. ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITYSET GENERATED { ALWAYS | BY DEFAULT }DROP IDENTITY [ IF EXISTS ]-
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.nota
O Amazon Aurora DSQL exige um valor explícito
CACHEao usarADD GENERATED AS IDENTITY. Além disso, as colunas de identidade são compatíveis apenas com colunasbigint.Ao usar colunas de identidade, é 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 colunas de identidade com base nos padrões de workload, consulte Trabalhar com sequências e colunas de identidade.
SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT }-
Esse formulário define o modo de armazenamento de uma coluna. Para obter detalhes sobre os modos de armazenamento disponíveis, consulte Modo de armazenamento na página CREATE TABLE.
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. DROP CONSTRAINT [ IF EXISTS ]-
Esse formulário remove a restrição especificada de uma tabela, juntamente com qualquer índice subjacente à restrição. Se
IF EXISTSfor especificado e a restrição não existir, nenhum erro será gerado. Nesse caso, será emitido um aviso em vez disso.Importante
No momento, a adição de uma nova restrição é compatível com a expressão
CREATE TABLE. A expressãoALTER TABLE ADD CONSTRAINT(espelhando o suporte aDROP CONSTRAINT) ainda não está disponível. Se você tiver dúvidas sobre esse recurso futuro, entre em contato com o AWS Support ou fale diretamente conosco pelo DSQL Public Discord. OWNER TO-
Esse formulário altera o proprietário da tabela para o usuário especificado.
RENAME-
Os formulários
RENAMEalteram o nome de uma tabela, o nome de uma coluna individual de uma tabela ou o nome de uma restrição da tabela. Ao renomear uma restrição que possui um índice subjacente, o índice também é renomeado. Não há impacto sobre os dados armazenados. SET SCHEMA-
Esse formulário move a tabela para outro esquema. Os índices, as restrições e as sequências associados que pertencem às colunas da tabela também são movidos.
Parâmetros
IF EXISTS-
Não gere um erro se a tabela não existir. Um aviso é emitido nesse caso.
name-
O nome (opcionalmente qualificado pelo esquema) de uma tabela existente a ser alterada. Se
ONLYfor especificado antes do nome da tabela, somente essa tabela será alterada. SeONLYnão for especificado, a tabela e todas as suas tabelas descendentes (se houver) serão alteradas. Opcionalmente,*pode ser especificado após o nome da tabela para indicar explicitamente que as tabelas descendentes estão incluídas. column_name-
Nome de uma coluna nova ou existente.
new_column_name-
Novo nome para uma coluna existente.
new_name-
Novo nome da tabela.
data_type-
Tipo de dados da nova coluna.
nome_restrição-
Nome de uma restrição nova ou existente.
CASCADE-
Remova automaticamente os objetos que dependem da restrição removida (por exemplo, exibições que fazem referência à coluna) e, por sua vez, todos os objetos que dependem desses objetos.
RESTRICT-
Recuse a remoção da restrição se houver quaisquer objetos dependentes. Esse é o comportamento padrão.
new_owner-
O nome de usuário do novo proprietário da tabela.
new_schema-
O nome do esquema para o qual a tabela será movida.