最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL表新增字段默认值处理的一处小细节_MySQL

来源:懂视网 责编:小采 时间:2020-11-09 18:04:54
文档

MySQL表新增字段默认值处理的一处小细节_MySQL

MySQL表新增字段默认值处理的一处小细节_MySQL:bitsCN.com 某位同事要求对某张表(InnoDB表,且已有数据)增添一个字段,无默认值要求: 添加之前的表中数据: 01 mysql> select * from t1; 02 +------+ 03 | id | 04 +------+ 05 | 1 | 06 | 2 | 07 | 3 | 08 +--
推荐度:
导读MySQL表新增字段默认值处理的一处小细节_MySQL:bitsCN.com 某位同事要求对某张表(InnoDB表,且已有数据)增添一个字段,无默认值要求: 添加之前的表中数据: 01 mysql> select * from t1; 02 +------+ 03 | id | 04 +------+ 05 | 1 | 06 | 2 | 07 | 3 | 08 +--

bitsCN.com

某位同事要求对某张表(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 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 +------+------+ 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 +------+------+ 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 | 1 | N | 10 | 2 | N | 11 | 3 | N | 12 +------+------+ 13 3 rows in set (0.00 sec)

两次基本上相同的操作,但表中旧数据中的新添字段的结果却是不一样的。

我记录这段操作过程并不是想说明字段类型填充的默认值的原理,因为它不是一个复杂的概念,只是觉得日后需留意一些类似的小细节。

bitsCN.com

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

MySQL表新增字段默认值处理的一处小细节_MySQL

MySQL表新增字段默认值处理的一处小细节_MySQL:bitsCN.com 某位同事要求对某张表(InnoDB表,且已有数据)增添一个字段,无默认值要求: 添加之前的表中数据: 01 mysql> select * from t1; 02 +------+ 03 | id | 04 +------+ 05 | 1 | 06 | 2 | 07 | 3 | 08 +--
推荐度:
标签: mysql 细节
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top