MySQL 5.0.45

修改一个表以允许一个列为空的语法是什么,或者这个有什么错误:

ALTER mytable MODIFY mycolumn varchar(255) null;

我将手册解释为只是运行上述操作,它将重新创建列,这次允许为空。服务器告诉我我有语法错误。我就是看不到他们。


当前回答

你想要的是:

ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);

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

其他回答

使用: 修改mycolumn的VARCHAR(255)

我的解决方案:

ALTER TABLE table_name CHANGE column_name column_name type DEFAULT NULL

例如:

ALTER TABLE SCHEDULE CHANGE date date DATETIME DEFAULT NULL;

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

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

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

ALTER TABLE mytable MODIFY mycolumn varchar(255) null;

你想要的是:

ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);

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