Mysql Alter SQL table-允许空列值

Mysql Alter SQL table-允许空列值,mysql,sql,alter,Mysql,Sql,Alter,最初,表“MyTable”的定义如下: CREATE TABLE IF NOT EXISTS `MyTable` ( `Col1` smallint(6) NOT NULL AUTO_INCREMENT, `Col2` smallint(6) DEFAULT NULL, `Col3` varchar(20) NOT NULL, ); 如何以允许列“Col 3”为NULL的方式更新它?下面的MySQL语句应该修改您的列以接受NULL ALTER TABLE MyTable MODIF

最初,表“MyTable”的定义如下:

CREATE TABLE IF NOT EXISTS `MyTable` (
  `Col1` smallint(6) NOT NULL AUTO_INCREMENT,
  `Col2` smallint(6) DEFAULT NULL,
  `Col3` varchar(20) NOT NULL,
);

如何以允许列“Col 3”为NULL的方式更新它?

下面的MySQL语句应该修改您的列以接受NULL

ALTER TABLE MyTable MODIFY Col3 varchar(20) NULL;
ALTER TABLE `MyTable`
ALTER COLUMN `Col3` varchar(20) DEFAULT NULL

当我在MySQL查询浏览器中编辑列(尝试使其为空)时,会出现以下错误消息:第1行“Col 3”列的数据被截断。它发生在更新之后。如果我尝试更改表spen_recipe MODIFY Null varchar(20)Null;我明白了err@SachinS:第一个
Null
在那里做什么?让JU将描述设置为默认的unsigned NOTNULL@SachinS:应为
ALTER TABLE MODIFY NULL。是的,但是当我编辑列Col 3(Date)时,它会自动获得值“0000-00-00”。但我希望它等于NULL.UPDATE TABLE MyTable SET Col3=NULL,其中Col3='0000-00-00'Wait。。。Col3不是varchar(20),不是Date吗?空字符串和空值是不同的东西,在MySQL查询浏览器中,这有点让人困惑。我没有使用“DEFAULT”关键字。有必要吗?这个问题已经回答了吗?如果是这样的话,别忘了将答案标记为已接受。