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?

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);

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);

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.