如何从现有 MySQL 表的列中删除 NOT NULL 约束?
mysqlmysqli database
我们可以使用 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 约束已被删除。
在上述查询中,关键字 MODIFY 后的关键字 NULL 是可选的。以下查询也会产生与上述相同的结果 −
mysql> ALTER TABLE test123 MODIFY ID INT; Query OK, 0 rows affected (0.20 sec) Records: 0 Duplicates: 0 Warnings: 0