如何删除非空约束?

发布于 2024-08-28 19:06:01 字数 325 浏览 3 评论 0原文

假设创建了一个表,如下所示:

create table testTable ( colA int not null )

如何删除非空约束?我正在寻找一些与

ALTER TABLE testTable ALTER COLUMN colA DROP NOT NULL;

我使用 PostgreSQL 类似的东西。令我惊讶的是,据我所知,MySQL 文档、Google 甚至 Stackoverflow(尽管有数十个或数百个与 NULL 相关的问题)似乎都没有导致单个简单的 SQL 语句这将完成这项工作。

Let's say there's a table created as follows:

create table testTable ( colA int not null )

How would you drop the not null constraint? I'm looking for something along the lines of

ALTER TABLE testTable ALTER COLUMN colA DROP NOT NULL;

which is what it would look like if I used PostgreSQL. To my amazement, as far as I've been able to find, the MySQL docs, Google and yes, even Stackoverflow (in spite of dozens or hundreds of NULL-related questions) don't seem to lead towards a single simple SQL statement which will do the job.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

柒夜笙歌凉 2024-09-04 19:06:01

我会尝试这样的事情

ALTER TABLE testTable MODIFY COLUMN colA int;

I would try something like this

ALTER TABLE testTable MODIFY COLUMN colA int;
楠木可依 2024-09-04 19:06:01

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

ALTER TABLE testTable MODIFY COLUMN colA int null; 

In MySQL, nullability is a part of the datatype, not a constraint. So:

ALTER TABLE testTable MODIFY COLUMN colA int null; 
暖阳 2024-09-04 19:06:01

语法实际上很接近:

ALTER TABLE testTable CHANGE colA colA int null;

The syntax was close its actually:

ALTER TABLE testTable CHANGE colA colA int null;
从来不烧饼 2024-09-04 19:06:01

尝试

ALTER TABLE testTable MODIFY COLUMN columnA int;

Try

ALTER TABLE testTable MODIFY COLUMN columnA int;
冷…雨湿花 2024-09-04 19:06:01
ALTER TABLE test.tbl_employee 
CHANGE COLUMN `DepartmentId` `DepartmentId` INT(11) NULL;
ALTER TABLE test.tbl_employee 
CHANGE COLUMN `DepartmentId` `DepartmentId` INT(11) NULL;
云朵有点甜 2024-09-04 19:06:01

这对我有用

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

This works for me

ALTER TABLE table_name
MODIFY COLUMN column_name VARCHAR(25) UNIQUE;
瑾兮 2024-09-04 19:06:01

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

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

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

When you modify table constraint or datatype in Mysql workbench then it shows the code it is going to execute to complete the request.
And this is the query I got from that box.

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

But the catch here is that you can't have the primary key as null you have to set it unique instead.

奢华的一滴泪 2024-09-04 19:06:01

这在 postgres 中对我有用:

ALTER TABLE table_name ALTER COLUMN column_name DROP NOT NULL;

This worked for me in postgres:

ALTER TABLE table_name ALTER COLUMN column_name DROP NOT NULL;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文