Como mudar a definição da coluna MySQL?

156

Eu tenho uma tabela mySQL chamada test:

create table test(
    locationExpect varchar(120) NOT NULL;
);

Quero alterar a coluna locationExpect para:

create table test(
    locationExpect varchar(120);
);

Como isso pode ser feito rapidamente?

mascarar
fonte

Respostas:

273

Você quer dizer alterar a tabela depois que ela foi criada? Nesse caso, você precisa usar alter table , em particular:

ALTER TABLE tablename MODIFY COLUMN new-column-definition

por exemplo

ALTER TABLE test MODIFY COLUMN locationExpect VARCHAR(120);
mikej
fonte
5
Então ... O MySQLWorkbench possui um bug de verificação de sintaxe que rejeita esse comando. Mas, é o comando certo.
Steven Lu
Cuidado: O exemplo acima também mudará COLUMN para Null = Yes, Default = Null. Você precisa especificar valores diferentes se não desejar Nulo.
Guy Gordon
@GuyGordon na pergunta original Mask queria mudar uma coluna NOT NULLpara permitir nulos, então acho que este exemplo ainda está OK. Concorde que uma pequena variação seria necessária se um padrão diferente fosse desejado.
mikej 13/01
43

Sintaxe para alterar o nome da coluna no MySql :

alter table table_name change old_column_name new_column_name data_type(size);

Exemplo:

alter table test change LowSal Low_Sal integer(4);
Niranjan Vaddi
fonte
11

Isso deve servir:

ALTER TABLE test MODIFY locationExpert VARCHAR(120) 
Daniel Rikowski
fonte