如何從現有 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 約束。

在上述查詢中,關鍵詞 MODIFY 後面的關鍵詞 NULL 是可選的。以下查詢也會生成與上述相同的結果:

mysql> ALTER TABLE test123 MODIFY ID INT;
Query OK, 0 rows affected (0.20 sec)
Records: 0 Duplicates: 0 Warnings: 0

更新於:2020 年 6 月 19 日

7000+ 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.