MySQL 如何从现有MySQL表的列中去除NOT NULL约束?
我们可以使用ALTER TABLE语句从现有表的列中去除NOT NULL约束。
阅读更多:MySQL 教程
示例
假设我们有一个名为“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约束已被删除。
在上面的查询中,关键字MODIFY之后的关键字NULL是可选的。以下查询也将产生与上面相同的结果−
mysql> ALTER TABLE test123 MODIFY ID INT;
Query OK, 0 rows affected (0.20 sec)
Records: 0 Duplicates: 0 Warnings: 0