博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL表新增字段默认值处理的一处小细节
阅读量:6183 次
发布时间:2019-06-21

本文共 1272 字,大约阅读时间需要 4 分钟。

hot3.png

某位同事要求对某张表(InnoDB表,且已有数据)增添一个字段,无默认值要求:
添加之前的表中数据:
mysql> select * from t1;+------+| id   |+------+|    1 ||    2 ||    3 |+------+3 rows in set (0.02 sec)mysql> alter table t1 add col1 char(1);Query OK, 3 rows affected (0.24 sec)Records: 3  Duplicates: 0  Warnings: 0

添加字段之后的表中数据:

mysql> select * from t1;+------+------+| id   | col1 |+------+------+|    1 | NULL ||    2 | NULL ||    3 | NULL |+------+------+3 rows in set (0.00 sec)

过了一会儿,他要求设置新添字段的默认值为'N':

mysql> alter table t1 modify col1 char(1) default 'N';Query OK, 0 rows affected (0.05 sec)Records: 0  Duplicates: 0  Warnings: 0

查看此时的表中数据:

mysql> select * from t1;+------+------+| id   | col1 |+------+------+|    1 | NULL ||    2 | NULL ||    3 | NULL |+------+------+3 rows in set (0.00 sec)

操作到这里,可以说同事的这个需求就算告一段落了。不过如果把刚才的时间倒回到这个小需求的开始点,同事如果一次性的提出了完整的需求:添加一个char(1)类型的字段,默认值为‘N’:

mysql> alter table t1 add col1 char(1) default 'N';Query OK, 3 rows affected (0.19 sec)Records: 3  Duplicates: 0  Warnings: 0查看表中数据:mysql> select * from t1;+------+------+| id   | col1 |+------+------+|    1 | N    ||    2 | N    ||    3 | N    |+------+------+3 rows in set (0.00 sec)

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

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

 

 

转载于:https://my.oschina.net/liuliufa/blog/75813

你可能感兴趣的文章
Object.keys()是按什么顺序返回值的?
查看>>
利用微查询和数据锐化进行大数据探索
查看>>
如何使用视频剪辑软件将qsv格式视频转换为MP4格式
查看>>
原生JS上传图片接收服务器端图片并且显示图片(主要描述blob类型)
查看>>
如何用Python进行数据分析?
查看>>
getDate方法的妙用(js判断闰年)
查看>>
css中的尺寸和单位
查看>>
学Excel函数公式,怎能不会这个组合套路?
查看>>
python之属性描述符
查看>>
GO随笔-搭建一个Web服务器
查看>>
官宣,PyTorch 1.0 稳定版本现已推出
查看>>
最好用的编辑器之一:Vim-Go环境搭建
查看>>
[LeetCode] 803. Bricks Falling When Hit
查看>>
简单聊聊智能硬件的固件测试
查看>>
生物智能与AI——关乎创造、关乎理解(下)
查看>>
Python爬虫 --- 2.5 Scrapy之汽车之家爬虫实践
查看>>
EOSIO 指南(安装CDT)
查看>>
[case52]聊聊flink KeyedStream的aggregation操作
查看>>
微信小程序wepy框架详解(一)
查看>>
集合框架知识系列04 LinkedList的源码分析和使用示例
查看>>