在表中建立一個允許為空但預設值為 (非空) 空字串的列?


你需要使用 `default` 關鍵字。語法如下:

alter table yourTableName add yourColumnName yourDataType NULL Default '';

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

mysql> create table AllowNullDefaulNotNullDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> UserName varchar(20),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.65 sec)

讓我們新增一個允許 NULL 值但預設值設定為非 NULL 的新列。查詢如下:

mysql> alter table AllowNullDefaulNotNullDemo add UserAddress varchar(20) NULL Default'';
Query OK, 0 rows affected (1.04 sec)
Records: 0 Duplicates: 0 Warnings: 0

現在使用 DESC 命令檢查表的描述。查詢如下:

mysql> desc AllowNullDefaulNotNullDemo;

以下是輸出:

+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| Id          | int(11)     | NO   | PRI | NULL    | auto_increment |
| UserName    | varchar(20) | YES  |     | NULL    |                |
| UserAddress | varchar(20) | YES  |     |         |                |
+-------------+-------------+------+-----+---------+----------------+
3 rows in set (0.17 sec)

現在您可以使用 insert 命令在表中插入一些記錄。在下面的查詢中,UserAddress 列允許 NULL 值,但預設值設定為非 NULL。

讓我們向該列插入記錄。查詢如下:

mysql> insert into AllowNullDefaulNotNullDemo(UserAddress) values('US');
Query OK, 1 row affected (0.14 sec)
mysql> insert into AllowNullDefaulNotNullDemo(UserAddress) values(NULL);
Query OK, 1 row affected (0.16 sec)
mysql> insert into AllowNullDefaulNotNullDemo() values();
Query OK, 1 row affected (0.12 sec)

檢查新新增列 UserAddress 的特定記錄。查詢如下:

mysql> select UserAddress from AllowNullDefaulNotNullDemo;

以下是輸出:

+-------------+
| UserAddress |
+-------------+
| US          |
| NULL        |
|             |
+-------------+
3 rows in set (0.00 sec)

更新於:2019年7月30日

584 次瀏覽

啟動您的職業生涯

完成課程後獲得認證

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