假设有一个表格如下:
create table testTable ( colA int not null )
你如何删除not null约束?我正在寻找符合
的内容ALTER TABLE testTable ALTER COLUMN colA DROP NOT NULL;
如果我使用PostgreSQL,它会是什么样子。令我惊讶的是,据我所知,MySQL文档,Google和是的,甚至Stackoverflow(尽管存在数十个或数百个与NULL相关的问题)似乎并未导致单个简单的SQL语句这将完成这项工作。
答案 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;