如何在MySQL中為現有列新增非空約束?


要在MySQL中為現有列新增非空約束,我們將使用ALTER命令。這是一種限制使用者輸入空值的驗證型別。

讓我們來看一個例子。首先,我們將建立一個表。CREATE命令用於建立表。

mysql> create table AddNotNUlldemo
   - > (
   - > name varchar(100)
   - > );
Query OK, 0 rows affected (0.44 sec)

插入記錄。

mysql> insert into AddNotNUlldemo values('John');
Query OK, 1 row affected (0.19 sec)

mysql> insert into AddNotNUlldemo values('Bob');
Query OK, 1 row affected (0.19 sec)

顯示所有記錄。

mysql> select *from AddNotNUlldemo;

以下是輸出。

+------+
| name |
+------+
| John |
| Bob  |
+------+
2 rows in set (0.00 sec)

以下是為現有列新增約束的語法。

ALTER table yourTableName  modify column_name data type constraint;

現在讓我們實現上述語法來實現下面的查詢。在這裡,我們包含“not null”約束。

mysql> ALTER table AddNotNUlldemo modify name varchar(100) not null;
Query OK, 0 rows affected (1.14 sec)
Records: 0  Duplicates: 0  Warnings: 0

現在,我們無法將空值插入到“AddNotNUlldemo”表中,因為我們已將上述約束設定為“not null”。如果我們嘗試新增空值,我們將收到錯誤。以下是一個示例。

mysql> INSERT into AddNotNUlldemo values(null);
ERROR 1048 (23000): Column 'name' cannot be null

顯示所有記錄。

mysql> SELECT *from AddNotNUlldemo;

以下是輸出。

+------+
| name |
+------+
| John |
| Bob  |
+------+
2 rows in set (0.00 sec)

更新於:2019年7月30日

2K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.