如何修改MySQL列以允许NULL?

问题描述 投票:355回答:7

MySQL 5.0.45

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

ALTER mytable MODIFY mycolumn varchar(255) null;

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

mysql syntax
7个回答
537
投票

您需要以下内容:

ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);

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


200
投票

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

ALTER TABLE mytable MODIFY mycolumn varchar(255) null;

26
投票

我的解决方案

ALTER TABLE table_name CHANGE column_name column_name type DEFAULT NULL

例如:

ALTER TABLE SCHEDULE CHANGE date date DATETIME DEFAULT NULL;

7
投票

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

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

2
投票

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

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

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

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


0
投票

如果列是双精度数

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

-4
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.