如何修改 MySQL 列以允许 NULL?

MySQL 5.0.45

修改表以允许列为 null 的语法是什么,或者这样做有什么问题:

ALTER mytable MODIFY mycolumn varchar(255) null;

我将手册解释为只运行上面的命令,它将重新创建列,这次允许 null。服务器告诉我,我有句法错误。我就是看不到他们。

514299 次浏览

你想要的是:

ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);

列默认为空。只要列没有声明为UNIQUENOT NULL,就不应该有任何问题。

您的语法错误是由查询中缺少“表”引起的

ALTER TABLE mytable MODIFY mycolumn varchar(255) null;

在某些情况下(如果你得到“ERROR 1064 (42000): you have an ERROR in your SQL syntax;…”),你需要这样做

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

我的解决方案:

ALTER TABLE table_name CHANGE column_name column_name type DEFAULT NULL

例如:

ALTER TABLE SCHEDULE CHANGE date date DATETIME DEFAULT NULL;
< p >使用: ALTER TABLE mytable MODIFY mycolumn VARCHAR(255); < / p >

我的解决方案和@Krishnrohit一样:

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

我实际上已经将列设置为NOT NULL,但通过上面的查询,它被更改为NULL

附注:我知道这是一个旧线程,但似乎没有人承认CHANGE也是正确的。