如何删除非null约束?

时间:2010-04-09 13:25:01

标签: mysql null constraints

假设有一个表格如下:

create table testTable ( colA int not null )

你如何删除not null约束?我正在寻找符合

的内容
ALTER TABLE testTable ALTER COLUMN colA DROP NOT NULL;

如果我使用PostgreSQL,它会是什么样子。令我惊讶的是,据我所知,MySQL文档,Google和是的,甚至Stackoverflow(尽管存在数十个或数百个与NULL相关的问题)似乎并未导致单个简单的SQL语句这将完成这项工作。

8 个答案:

答案 0 :(得分:78)

我会尝试这样的事情

ALTER TABLE testTable MODIFY COLUMN colA int;

答案 1 :(得分:9)

在MySQL中,可空性是数据类型的一部分,而不是约束。所以:

ALTER TABLE testTable MODIFY COLUMN colA int null; 

答案 2 :(得分:2)

语法实际上很接近:

ALTER TABLE testTable CHANGE colA colA int null;

答案 3 :(得分:1)

尝试

ALTER TABLE testTable MODIFY COLUMN columnA int;

答案 4 :(得分:0)

ALTER TABLE test.tbl_employee 
CHANGE COLUMN `DepartmentId` `DepartmentId` INT(11) NULL;

答案 5 :(得分:0)

这对我有用

ALTER TABLE table_name
MODIFY COLUMN column_name VARCHAR(25) UNIQUE;

答案 6 :(得分:0)

当您在Mysql工作台中修改表约束或数据类型时,它会显示它将执行以完成请求的代码。 这是我从那个盒子里得到的查询。

ALTER TABLE `table_name`.`column_name`  CHANGE COLUMN `column_name` `colunm_name`datatype NULL ;

但是这里的问题是你不能将主键设为null,而是必须将其设置为唯一。

答案 7 :(得分:0)

这在 postgres 中对我有用:

ALTER TABLE table_name ALTER COLUMN column_name DROP NOT NULL;