Como faço para modificar uma coluna de MySQL para permitir NULL?
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.
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 ??p>
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);