Manual MyTable

MySQL • Alterar Tabela

Use esta tela para realizar mudanças estruturais em uma tabela MySQL: renomear a tabela, adicionar/renomear/alterar/excluir colunas, ajustar tipo, DEFAULT, NULL/NOT NULL, comentários, mudar Engine/Collation, mover para outro schema* e revisar owner/permissões (quando aplicável).
*No MySQL, “schema” é sinônimo de “database”.


Abrir “Alterar Tabela”

  1. Conecte-se à sua conexão MySQL e selecione o banco (database).
  2. Em Visualizar Tabelas, escolha a tabela.
  3. No menu de ações, toque em Alterar Tabela.

Dica: Consulte antes a Estrutura da Tabela para confirmar tipos, chaves e índices existentes.


Renomear tabela

  • Informe o novo nome (sem espaços/acentos) e confirme.
  • Atenção: atualize views, procedures e sistemas que referenciam o nome antigo.

Adicionar coluna

  1. Toque em Nova Coluna.
  2. Defina nome, tipo (ex.: INT, DECIMAL(12,2), VARCHAR(150), DATETIME, JSON), NULL/NOT NULL e DEFAULT (opcional).
  3. (Opcional) Marque como parte da PK/UNIQUE e adicione comentário.
  4. Salvar.

Boa prática: para tabelas grandes, se a coluna for obrigatória, crie com DEFAULT apropriado, preencha as linhas antigas e só então imponha NOT NULL.


Renomear coluna

  • Selecione a coluna e toque em Renomear.
  • Revise consultas, views e códigos que usam o nome antigo.

Alterar tipo de coluna

  1. Escolha a coluna e toque em Alterar Tipo.
  2. Selecione o novo tipo (ex.: INT → BIGINT, TEXT → VARCHAR(200), JSON).
  3. Se necessário, ajuste comprimento/precisão e o DEFAULT.
  4. Salvar.
  • Garanta compatibilidade: dados existentes devem caber no novo tipo.
  • Para DECIMAL(p,s), confirme que os valores respeitam nova precisão/escala.

DEFAULT e NULL/NOT NULL

  • DEFAULT: defina valores padrão (ex.: CURRENT_TIMESTAMP, 0, 'ativo').
  • NOT NULL: imponha após assegurar que não há nulos nas linhas atuais (preencha antes).

Excluir coluna

  • Selecione a coluna e toque em Excluir (operação irreversível).
  • Confirme dependências: índices, FKs, views e aplicações.

Comentários (documentação)

  • Edite o comentário da tabela e de colunas para registrar regras e significados.
  • Comentários aparecem na Estrutura e facilitam manutenção.

Mover para outro schema (database)

  • Opção Mover Tabela: escolha o database de destino (é necessário ter privilégios no destino).
  • Revise permissões e referências após a movimentação.

Engine, Charset e Collation

  • Mude a Engine (ex.: MyISAM → InnoDB) quando precisar de FKs e transações.
  • Padronize charset/collation (ex.: utf8mb4_0900_ai_ci) para evitar conflitos em JOIN e ordenação.

Chaves, FKs e índices (onde editar)


Auto Increment & Sequência de IDs

  • Para PK numérica, ajuste AUTO_INCREMENT quando necessário (ex.: após importações).
  • Evite colisões: garanta que o próximo valor seja maior que o maior ID atual.

Partições (impactos)

  • Se a tabela é particionada, mudanças em PK/UNIQUE e tipos podem exigir revisão do particionamento.
  • UNIQUE/PK devem incluir a coluna de partição. Veja Partições.

Boas práticas

  • Realize alterações primeiro em homolog e planeje janela para tabelas grandes.
  • Evite mudanças disruptivas em horário de pico.
  • Após alterações significativas, rode Analyze/Optimize quando aplicável.
  • Registre mudanças em Logs & Auditoria.

Erros comuns (e soluções)

“Data too long for column”

  • Os dados não cabem no novo limite. Aumente o tamanho ou normaliza os valores antes da mudança.

“Invalid default value”

  • O DEFAULT não é compatível com o tipo/versão (ex.: datas). Ajuste para um valor válido.

“Cannot drop/rename column … used in a foreign key/index”

  • Remova/ajuste a FK ou o índice relacionado antes da operação (veja Constraints/Índices).

“Table is read only / permission denied”

  • Conceda privilégios de ALTER e INDEX e USAGE no schema.

“Lock wait timeout exceeded”

  • Há concorrência/locks longos. Execute fora do pico e fatie alterações grandes.

Ferramentas relacionadas

Sugestão de próxima leitura: MySQL • Exportar/Importar Dados • Voltar: MySQL • Manutenção