如何修改MySQL列以允许NULL?

时间:2008-10-17 16:52:23

标签: mysql syntax

MySQL 5.0.45

改变表以允许列为空的语法是什么,或者替换为什么错误:

ALTER mytable MODIFY mycolumn varchar(255) null;

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

7 个答案:

答案 0 :(得分:532)

您需要以下内容:

ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);

默认情况下,列可以为空。只要该列未声明为UNIQUENOT NULL,就不会出现任何问题。

答案 1 :(得分:198)

您的语法错误是由查询

中缺少“表格”引起的
ALTER TABLE mytable MODIFY mycolumn varchar(255) null;

答案 2 :(得分:25)

我的解决方案:

ALTER TABLE table_name CHANGE column_name column_name type DEFAULT NULL

例如:

ALTER TABLE SCHEDULE CHANGE date date DATETIME DEFAULT NULL;

答案 3 :(得分:7)

在某些情况下(如果你得到“ERROR 1064(42000):你的SQL语法有错误; ......”)你需要做

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

答案 4 :(得分:2)

我的解决方案与@Krishnrohit相同:

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

我实际上将列设置为NOT NULL,但通过上述查询将其更改为NULL

P.S。我知道这是一个旧线程,但是似乎没人承认CHANGE也是正确的。

答案 5 :(得分:0)

如果该列是双列

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

答案 6 :(得分:-4)

使用: ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);