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

更新於:2020-06-19

7K+ 瀏覽

啟動你的 職業

透過完成課程獲得認證

開始
廣告