如何刪除現有 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
廣告