Pergunta

MySQL 5.0.45

O que é a sintaxe para alterar uma tabela para permitir que uma coluna para ser nulo, alternadamente o que está errado com este:

ALTER mytable MODIFY mycolumn varchar(255) null;

Eu interpretei o manual como apenas executar o acima e seria recriar a coluna, desta vez permitindo nulo. O servidor está me dizendo que eu tenho erros sintáticos. Eu só não vê-los.

Foi útil?

Solução

Você quer o seguinte:

ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);

As colunas são anulável por padrão. Enquanto a coluna não é declarado UNIQUE ou NOT NULL, não deve haver nenhum problema.

Outras dicas

Seu erro de sintaxe é causada por uma "mesa" em falta na consulta

ALTER TABLE mytable MODIFY mycolumn varchar(255) null;

A minha solução:

ALTER TABLE table_name CHANGE column_name column_name type DEFAULT NULL

Por exemplo:

ALTER TABLE SCHEDULE CHANGE date date DATETIME DEFAULT NULL;

Em algumas circunstâncias (se você receber "Erro 1064 (42000): Você tem um erro em sua sintaxe SQL; ...") que você precisa fazer

ALTER TABLE mytable MODIFY mytable.mycolumn varchar(255);

A minha solução é o mesmo que @Krishnrohit:

ALTER TABLE `table` CHANGE `column_current_name` `new_column_name` DATETIME NULL;

Na verdade, eu tinha o conjunto de colunas como NOT NULL mas com a consulta acima, foi alterado para NULL.

P.S. Eu sei que esta uma discussão antiga, mas ninguém parece reconhecer que CHANGE também está correto.

Se a coluna é um duplo

      ALTER TABLE `tablename` CHANGE `column_name` `column_name` DOUBLE NULL; 

Use: ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top