如何通过修改MySQL表结构操作,从现有表的列中移除NOT NULL约束?

2026-04-27 21:561阅读0评论SEO问题
  • 内容介绍
  • 相关推荐

本文共计254个文字,预计阅读时间需要2分钟。

如何通过修改MySQL表结构操作,从现有表的列中移除NOT NULL约束?

我们可以使用ALTER TABLE语句从现有表的列中删除NOT NULL约束。以下是一个简单的示例:

示例

假设我们有一个具有 NOT 的表“test123”列“ID”上的 NULL 约束如下 -

mysql> DESCRIBE test123; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | ID | int(11) | NO | | NULL | | | Date | date | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.04 sec)

现在,如果我们想删除 NOT NULL 约束,那么我们可以使用 ALTER TABLE 语句,如下所示 -

mysql> ALTER TABLE test123 MODIFY ID INT NULL; Query OK, 0 rows affected (0.20 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESCRIBE test123; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------ +---------+------+-----+---------+-------+ | ID | int(11) | YES | | NULL | | | Date | date | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.06 sec)

上面的结果集显示列“ID”上的 NOT NULL 约束已被删除。

在上面的查询中,关键字 MODIFY 后面的关键字 NULL 是可选的。以下查询也将产生与上面相同的结果 -

mysql> ALTER TABLE test123 MODIFY ID INT; Query OK, 0 rows affected (0.20 sec) Records: 0 Duplicates: 0 Warnings: 0

本文共计254个文字,预计阅读时间需要2分钟。

如何通过修改MySQL表结构操作,从现有表的列中移除NOT NULL约束?

我们可以使用ALTER TABLE语句从现有表的列中删除NOT NULL约束。以下是一个简单的示例:

示例

假设我们有一个具有 NOT 的表“test123”列“ID”上的 NULL 约束如下 -

mysql> DESCRIBE test123; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | ID | int(11) | NO | | NULL | | | Date | date | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.04 sec)

现在,如果我们想删除 NOT NULL 约束,那么我们可以使用 ALTER TABLE 语句,如下所示 -

mysql> ALTER TABLE test123 MODIFY ID INT NULL; Query OK, 0 rows affected (0.20 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESCRIBE test123; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------ +---------+------+-----+---------+-------+ | ID | int(11) | YES | | NULL | | | Date | date | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.06 sec)

上面的结果集显示列“ID”上的 NOT NULL 约束已被删除。

在上面的查询中,关键字 MODIFY 后面的关键字 NULL 是可选的。以下查询也将产生与上面相同的结果 -

mysql> ALTER TABLE test123 MODIFY ID INT; Query OK, 0 rows affected (0.20 sec) Records: 0 Duplicates: 0 Warnings: 0