如何删除现有 MySQL 表格中某个字段的 NOT NULL 约束?


我们可以使用 ALTER TABLE 语句来删除现有表格中某个字段的 NOT NULL 约束。

示例

假设我们有一个表格 test123,它有一个列 ID 的 NOT 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 约束。

在上述查询中,关键词 NULL 在关键词 MODIFY 之后是可选的。以下查询也会产生与以上相同的结果:

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

更新于:2020-06-19

7K+ 浏览

启动你的 职业

通过完成课程获得认证

开始
广告