Mysql 如何删除NOTNULL约束?
假设创建了一个表,如下所示:Mysql 如何删除NOTNULL约束?,mysql,null,constraints,Mysql,Null,Constraints,假设创建了一个表,如下所示: create table testTable ( colA int not null ) 如何删除NOTNULL约束?我在找一些类似于 ALTER TABLE testTable ALTER COLUMN colA DROP NOT NULL; 这就是我使用PostgreSQL时的样子。令我惊讶的是,据我所知,MySQL文档、Google和yes,甚至Stackoverflow(尽管有几十个或数百个与空相关的问题)似乎都没有导致一个简单的SQL语句来完成这项工作
create table testTable ( colA int not null )
如何删除NOTNULL约束?我在找一些类似于
ALTER TABLE testTable ALTER COLUMN colA DROP NOT NULL;
这就是我使用PostgreSQL时的样子。令我惊讶的是,据我所知,MySQL文档、Google和yes,甚至Stackoverflow(尽管有几十个或数百个与空相关的问题)似乎都没有导致一个简单的SQL语句来完成这项工作。在MySQL中,空性是数据类型的一部分,而不是约束。因此:
ALTER TABLE testTable MODIFY COLUMN colA int null;
我想试试这样的
ALTER TABLE testTable MODIFY COLUMN colA int;
实际上,语法非常接近:
ALTER TABLE testTable CHANGE colA colA int null;
试一试
这对我有用
ALTER TABLE table_name
MODIFY COLUMN column_name VARCHAR(25) UNIQUE;
当您在Mysql workbench中修改表约束或数据类型时,它会显示完成请求所要执行的代码。 这是我从那个盒子里得到的问题
ALTER TABLE `table_name`.`column_name` CHANGE COLUMN `column_name` `colunm_name`datatype NULL ;
但这里的问题是,您不能将主键设置为null,而是必须将其设置为唯一的。这在postgres中对我很有效:
ALTER TABLE table_name ALTER COLUMN column_name DROP NOT NULL;
alter table x alter column a int null
返回“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,在第1行[SQL State=42000,DB Errorcode=1064]中使用接近“int null”的正确语法。”我还尝试了alter table testTable修改int默认null
和alter table x alter column a int default null
:结果相同。我使用的是mysql 5.1。对不起,它是modifycolumn
,而不是ALTER
。编辑。出于某种原因,alter table testTable modify col int default null
在我尝试时似乎不起作用:上面的语句实际上是正确的,尽管没有单引号(我正在删除它们以匹配有效的内容)。您能为您的答案提供更多的上下文吗?
ALTER TABLE `table_name`.`column_name` CHANGE COLUMN `column_name` `colunm_name`datatype NULL ;
ALTER TABLE table_name ALTER COLUMN column_name DROP NOT NULL;