在 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 欄位。
廣告