我们如何从现有MySQL表的列中删除NOT NULL约束?
我们可以使用ALTERTABLE语句从现有表的列中删除NOTNULL约束。
示例
假设我们有一个表“test123”,对列“ID”具有NOTNULL约束,如下所示:
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)
现在,如果我们要删除NOTNULL约束,则可以使用ALTERTABLE语句,如下所示:
mysql> ALTER TABLE test123 MODIFY ID INT NULL; 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”的NOTNULL约束。
在上面的查询中,关键字MODIFY之后的关键字NULL是可选的。以下查询还将产生与上述相同的结果-
mysql> ALTER TABLE test123 MODIFY ID INT; Records: 0 Duplicates: 0 Warnings: 0