我们可以使用 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