程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL表新增字段默認值處理的一處小細節

MySQL表新增字段默認值處理的一處小細節

編輯:MySQL綜合教程


MySQL表新增字段默認值處理的一處小細節   某位同事要求對某張表(InnoDB表,且已有數據)增添一個字段,無默認值要求:  添加之前的表中數據:    01 mysql> select * from t1; 02 +------+ 03 | id   | 04 +------+ 05 |    1 | 06 |    2 | 07 |    3 | 08 +------+ 09 3 rows in set (0.02 sec) 10    www.2cto.com   11 mysql> alter table t1 add col1 char(1); 12 Query OK, 3 rows affected (0.24 sec) 13 Records: 3  Duplicates: 0  Warnings: 0 添加字段之後的表中數據:   1 mysql> select * from t1; 2 +------+------+ 3 | id   | col1 | 4 +------+------+ 5 |    1 | NULL | 6 |    2 | NULL | 7 |    3 | NULL | 8  www.2cto.com   +------+------+ 9 3 rows in set (0.00 sec) 過了一會兒,他要求設置新添字段的默認值為'N':   1 mysql> alter table t1 modify col1 char(1) default 'N'; 2 Query OK, 0 rows affected (0.05 sec) 3 Records: 0  Duplicates: 0  Warnings: 0 查看此時的表中數據:   1 mysql> select * from t1; 2 +------+------+ 3 | id   | col1 | 4 +------+------+ 5 |    1 | NULL | 6 |    2 | NULL | 7 |    3 | NULL | 8  www.2cto.com   +------+------+ 9 3 rows in set (0.00 sec) 操作到這裡,可以說同事的這個需求就算告一段落了。不過如果把剛才的時間倒回到這個小需求的開始點,同事如果一次性的提出了完整的需求:添加一個char(1)類型的字段,默認值為‘N’:   01 mysql> alter table t1 add col1 char(1) default 'N'; 02 Query OK, 3 rows affected (0.19 sec) 03 Records: 3  Duplicates: 0  Warnings: 0 04 查看表中數據: 05 mysql> select * from t1; 06 +------+------+ 07 | id   | col1 | 08 +------+------+ 09  www.2cto.com   |    1 | N    | 10 |    2 | N    | 11 |    3 | N    | 12 +------+------+ 13 3 rows in set (0.00 sec)
  兩次基本上相同的操作,但表中舊數據中的新添字段的結果卻是不一樣的。   我記錄這段操作過程並不是想說明字段類型填充的默認值的原理,因為它不是一個復雜的概念,只是覺得日後需留意一些類似的小細節。 
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved