在 MySQL 中新增一個值預設不為 null 的列?


為此,您需要刪除 default 關鍵字。語法如下

ALTER TABLE yourTableName ADD COLUMN yourColumnName dataType NOT NULL AFTER yourColumnName;

為了理解上述語法,讓我們建立一個表。建立表的查詢如下

mysql> create table AddingColumnDefaultValueNOTNULL
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> FirstName varchar(20),
   -> LastName varchar(20),
   -> Age int,
   -> Address varchar(100),
   -> Salary int,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.58 sec)

現在檢查表的描述。查詢如下

mysql> desc AddingColumnDefaultValueNOTNULL;

以下是輸出

+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| Id        | int(11)      | NO   | PRI | NULL    | auto_increment |
| FirstName | varchar(20)  | YES  |     | NULL    |                |
| LastName  | varchar(20)  | YES  |     | NULL    |                |
| Age       | int(11)      | YES  |     | NULL    |                |
| Address   | varchar(100) | YES  |     | NULL    |                |
| Salary    | int(11)      | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
6 rows in set (0.11 sec)

以下是新增預設值 NOT NULL 的列的查詢

mysql> alter table AddingColumnDefaultValueNOTNULL add column City varchar(20) NOT NULL after Age;
Query OK, 0 rows affected (2.17 sec)
Records: 0 Duplicates: 0 Warnings: 0

現在您可以再次檢查表的描述。該表將有一個新列,其名稱為“City”,其預設值為 NOT NULL。

檢查表描述的查詢如下

mysql> desc AddingColumnDefaultValueNOTNULL;

以下是輸出

+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| Id        | int(11)      | NO   | PRI | NULL    | auto_increment |
| FirstName | varchar(20)  | YES  |     | NULL    |                |
| LastName  | varchar(20)  | YES  |     | NULL    |                |
| Age       | int(11)      | YES  |     | NULL    |                |
| City      | varchar(20)  | NO   |     | NULL    |                |
| Address   | varchar(100) | YES  |     | NULL    |                |
| Salary    | int(11)      | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
7 rows in set (0.02 sec)

檢視 City 欄位。在 NULL 列中,值為 NO。這本身就表明我們不能將 NULL 值設定到 City 欄位。

更新於: 2019-07-30

941 人檢視

開啟你的職業生涯

完成該課程獲得認證

入門
廣告