ALTER TABLE
Use o comando ALTER TABLE
para alterar
as características de uma tabela existente e de suas colunas. É possível
incluir, eliminar e alterar colunas, além de configurar manualmente o valor de campos
do tipo INCR
.
Sintaxe
ALTER TABLE [database_name.]table_name
SET INCR value
ADD [COLUMN] column_name data_type [ NODEFAULT | NOMODIFY | HIDDEN ]
DROP [COLUMN] column_name
ALTER [COLUMN] column_name SET NOMODIFY { TRUE | FALSE }
ALTER [COLUMN] column_name SET HIDDEN { TRUE | FALSE }
ALTER [COLUMN] column_name SET NODEFAULT { TRUE | FALSE }
ALTER [COLUMN] column_name SET WIDTH value;
É
possível especificar mais de uma configuração ADD
, DROP
ou ALTER
em um único comando ALTER TABLE
.
Exemplo
alter table mytab add col3 real;
Configurando valores de incremento manualmente
Uma
coluna do tipo INCR
é usada para fornecer a cada linha em uma
tabela um número exclusivo, como a coluna Serial na tabela
alerts.status. Em cada inserção, o valor de incremento atual é copiado para a
nova linha e será então aumentado para a próxima linha. É possível usar a cláusula SET
INCR
(configurar incremento) para configurar o valor de incremento para
linhas subsequentes. Isso é útil, por exemplo, quando se deseja alterar
o valor Serial designado a novos alertas na tabela
alerts.status.
ALTER TABLE table_name SET INCR value
Em que table_name
é
o nome de uma tabela que contém uma coluna do tipo INCR
e value
é
um número inteiro.1> alter table alerts.status set incr 20100
2> go
INCR
que faça com que futuras inserções tenham os mesmos valores que linhas já
existentes. O novo valor INCR
não pode
ser entre as linhas mínima e máxima existentes e deve ser 1.000.000.000 abaixo do valor
mínimo existente na tabela ou 1.000.000.000 acima do valor máximo existente.No Fix Pack 23, o comportamento foi alterado para evitar que o novo valor INCR
fosse configurado para um valor que está dentro de 1.000.000 de qualquer valor existente na tabela. INCR
O wrapping de valor também agora é levado em consideração.