Pular para o conteúdo principal

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.