Declaração MySQL ALTER TABLE
A instrução `ALTER TABLE` no MySQL é usada para modificar a estrutura de uma tabela existente. Ele permite que você adicione, exclua ou altere colunas e restrições em uma tabela, tornando-o versátil para o gerenciamento do esquema do banco de dados.
Uso
A instrução `ALTER TABLE` é usada quando você precisa alterar a estrutura de uma tabela e, ao mesmo tempo, garantir a retenção de dados. Ele pode ser usado para renomear tabelas, adicionar ou remover colunas e modificar colunas existentes.
ALTER TABLE table_name
[ADD | DROP | MODIFY | CHANGE | RENAME TO] [COLUMN column_name] [column_definition];
Nessa sintaxe, `ALTER TABLE nome_da_tabela` especifica a tabela a ser alterada. Ações como `ADD`, `DROP` e `MODIFY` se aplicam a colunas, enquanto `RENAME TO` é usado para tabelas. Observe que `CHANGE` é usado para renomear uma coluna.
Exemplos
1. Adicionando uma coluna
ALTER TABLE employees
ADD COLUMN birthdate DATE;
Este exemplo adiciona uma nova coluna `birthdate` do tipo `DATE` à tabela `employees`.
2. Modificação de uma coluna
ALTER TABLE products
MODIFY COLUMN price DECIMAL(10, 2);
Aqui, a coluna `price` na tabela `products` é modificada para ter um tipo de dados `DECIMAL` com uma precisão de 10 e uma escala de 2.
3. Renomear uma coluna
ALTER TABLE employees
CHANGE COLUMN old_name new_name VARCHAR(255);
Este exemplo renomeia uma coluna `old_name` para `new_name` com um tipo de dados `VARCHAR(255)` na tabela `employees`.
4. Renomear uma tabela
ALTER TABLE orders
RENAME TO customer_orders;
Esse exemplo renomeia a tabela `orders` para `customer_orders`, o que pode ser útil para uma melhor identificação da tabela.
5. Adição de uma chave primária
ALTER TABLE orders
ADD PRIMARY KEY (order_id);
Isso adiciona uma restrição de chave primária à coluna `order_id` da tabela `orders`.
6. Eliminação de uma chave estrangeira
ALTER TABLE orders
DROP FOREIGN KEY fk_customer;
Isso remove a restrição de chave estrangeira denominada `fk_customer` da tabela `orders`.
7. Definição de um valor padrão
ALTER TABLE products
ALTER COLUMN price SET DEFAULT 0.00;
Isso define o valor padrão da coluna `preço` como `0,00` na tabela `produtos`.
Dicas e práticas recomendadas
- Garantir a integridade dos dados. Sempre faça backup dos seus dados e teste as operações `ALTER TABLE` em um ambiente que não seja de produção para se proteger contra a perda de dados e garantir a execução.
- Minimizar o tempo de inatividade. Esteja ciente de que a alteração de tabelas grandes pode bloquear a tabela por um tempo significativo; planeje essas alterações fora do horário de pico. Algumas operações podem reconstruir a tabela inteira, afetando o desempenho.
- Use nomes descritivos. Ao adicionar colunas, escolha nomes claros e descritivos para manter a clareza no esquema do banco de dados.
- Considerações sobre compatibilidade. Esteja atento a possíveis problemas ao alterar tabelas com restrições de chave estrangeira, pois elas podem afetar tabelas relacionadas.