O comando ALTER TABLE se utiliza para modificar uma tabela existente (nom_sql). Pode realizar uma das seguintes ações:
Passar ADD definição_coluna adiciona uma coluna a tabela.
A palavra chave TRAILING (deve ser localizada em frente de definicao_coluna se utilizada) força a criação da coluna a criar logo da última coluna existente da tabela no arquivo de estrutura. Esta opção é útil quando as colunas que contém os dados que foram eliminados da tabela (sem que os dados sejam apagados), para evitar que os dados existentes sejam atribuídos a nova coluna.
Nota: este comando não permite adicionar um campo (coluna) de tipo Objeto
A palavra chave PRIMARY KEY se utiliza para definir a chave primária quando é adicionada uma coluna.
Passar DROP nom_sql elimina a coluna nom_sql da tabela.
Passar ADD definição_chave_primária adiciona uma chave primária (PRIMARY KEY) a tabela.
Passar DROP PRIMARY KEY elimina a chave primária (PRIMARY KEY) da tabela.
Passar ADD definição_chave_externa adiciona uma chave externa (FOREIGN KEY) a tabela.
Passar DROP CONSTRAINT nom_sql elimina a restrição especificada por nom_sql da tabela.
Passar ENABLE REPLICATE ou DISABLE REPLICATE ativa ou desativa o mecanismo que permite a replicação da tabela (ver a seção Replicação via SQL).
Passar ENABLE LOG ou DISABLE LOG ativa ou desativa o histórico da tabela.
Passar ENABLE AUTO_INCREMENT ou DISABLE AUTO_INCREMENT ativa ou desativa a opção "Autoincrement" dos campos de tipo inteiro longo.
Passar ENABLE AUTO_GENERATE ou DISABLE AUTO_GENERATE ativa ou desativa a opção "Auto UUID" para os campos alfa de tipo UUID.
Pasar ENABLE TRIGGERS ou DISABLE TRIGGERS ativa ou desativa os triggers para a tabela. Se deseja gerenciar os triggers globalmente a nível da base, deve utilizar ALTER DATABASE.
Passar SET SCHEMA nom_sql transfere a tabela ao esquema nom_sql.
O comando devolve um erro:
- quando o parâmetro opcional ENABLE LOG se passar e nenhuma chave primária válida foi definida,
- se tentar modificar ou eliminar a definição de chave primária da tabela sem desativar o histórico via DISABLE LOG.
Este exemplo cria uma tabela, insere um conjunto de valores nela, depois adiciona uma coluna Num_Tel, insere outro conjunto de valores e depois elimina a coluna ID:
CREATE TABLE ACTOR_FANS
(ID INT32, Nom VARCHAR);
INSERT INTO ACTOR_FANS
(ID, Nom)
VALUES(1, 'Francis');
ALTER TABLE ACTOR_FANS
ADD Num_Tel VARCHAR;
INSERT INTO ACTOR_FANS
(ID, Nom, Num_Tel)
VALUES (2, 'Florence', '01446677888');
ALTER TABLE ACTOR_FANS
DROP ID;
Exemplo para ativar a opção "Autoincrementar" do tipo Longint [Table_1]campo id:
Begin SQL
ALTER TABLE Table_1 MODIFY id ENABLE AUTO_INCREMENT;
End SQL
Desativar a opção:
Begin SQL
ALTER TABLE Table_1 MODIFY id DISABLE AUTO_INCREMENT;
End SQL
Exemplo para ativar "Auto UUID" do tipo Alpha [Table_1]uid field:
Begin SQL
ALTER TABLE Table_1 MODIFY uid ENABLE AUTO_GENERATE;
End SQL
Desativar a opção:
Begin SQL
ALTER TABLE Table_1 MODIFY uid DISABLE AUTO_GENERATE;
End SQL