Diferença entre Alter Table no Mysql
MySQL ALTER TABLE: ALTER vs CHANGE vs MODIFY COLUMN
Sempre que tenho que realizar uma alteração de coluna no MySQL (atividade que não é tão frequente), eu acabou esquecendo a diferença entre ALTER COLUMN, CHANGE COLUMN e MODIFY COLUMN.
Aqui vai uma referência para ajudar a relembrar.
ALTER COLUMN
Usado para definir ou remover o valor padrão de uma coluna.
ALTER TABLE nomeTabela ALTER COLUMN foo SET DEFAULT 'bar';
ALTER TABLE nomeTabela ALTER COLUMN foo DROP DEFAULT;
CHANGE COLUMN
Usado para renomear uma coluna, alterar seu tipo de dados.
ALTER TABLE nomeTabela CHANGE COLUMN foo foo VARCHAR(32) NOT NULL;
ALTER TABLE nomeTabela CHANGE COLUMN foo bar VARCHAR(32) NOT NULL FIRST;
ALTER TABLE nomeTabela CHANGE COLUMN foo bar VARCHAR(32) NOT NULL AFTER baz;
MODIFY COLUMN
Usado para fazer tudo que CHANGE COLUMN pode fazer, mas sem renomear a coluna.
ALTER TABLE nomeTabela MODIFY COLUMN foo VARCHAR(32) NOT NULL;
A documentação oficial para ALTER TABLE (for MySQL 8.0) é encontrada aqui.