MySQL 5.0.45
Qual é a sintaxe para alterar uma tabela para permitir que uma coluna seja nula? Como alternativa, o que há de errado nisso:
ALTER mytable MODIFY mycolumn varchar(255) null;
Interpretei o manual como apenas execute o procedimento acima e ele recriaria a coluna, desta vez permitindo nulo. O servidor está me dizendo que tenho erros sintáticos. Eu simplesmente não os vejo.
Respostas:
Você deseja o seguinte:
As colunas são anuláveis por padrão. Contanto que a coluna não seja declarada
UNIQUE
ouNOT NULL
não haja problemas.fonte
TIMESTAMP
tipo que, dependendo da sua versão e configuração do MySQL, pode serNOT NULL
especificadoNULL
como sugerido por @ConroyP, é mais correto.Seu erro de sintaxe é causado por uma "tabela" ausente na consulta
fonte
NULL
, isso não torna essa resposta mais "correta" do que a resposta aceita? Saber que as colunas são anuláveis por padrão (conforme mencionado na resposta aceita) é útil no que diz respeito a essa pergunta em particular.Minha solução:
Por exemplo:
fonte
Sob algumas circunstâncias (se você receber "ERRO 1064 (42000): você tem um erro na sintaxe SQL; ..."), é necessário executar
fonte
Minha solução é a mesma que @Krishnrohit:
Na verdade, eu tinha a coluna definida como
NOT NULL
mas com a consulta acima foi alterada paraNULL
.PS: Eu sei que isso é um tópico antigo, mas ninguém parece reconhecer que
CHANGE
também está correto.fonte
Usar:
ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);
fonte