在MySQL更改数据类型前一定要特别小心,分析一下是不是可行,另外在更改前,需要先进行备份,备份,备份!!!

环境描述

表结构:

CREATE TABLE `t_mobile` (`mobile_no` varchar(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

写入数据:

root@zhishutang:mysql3306.sock [zst]>insert into t_mobile(mobile_no) values('13501245755'),('18800108001'),('13996000001');

确认数据无误:

root@zhishutang:mysql3306.sock [zst]>select * from t_mobile;
+-------------+
| mobile_no |
+-------------+
| 13501245755 |
| 18800108001 |
| 13996000001 |
+-------------+
3 rows in set (0.00 sec)

溢出

修改数类型:

root@zhishutang:mysql3306.sock [zst]>alter table t_mobile change mobile_no mobile_no int;
Query OK, 3 rows affected, 3 warnings (0.02 sec)
Records: 3 Duplicates: 0 Warnings: 3

查看警告:

root@zhishutang:mysql3306.sock [zst]>show warnings;
+---------+------+----------------------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------------------+
| Warning | 1264 | Out of range value for column 'mobile_no' at row 1 |
| Warning | 1264 | Out of range value for column 'mobile_no' at row 2 |
| Warning | 1264 | Out of range value for column 'mobile_no' at row 3 |
+---------+------+----------------------------------------------------+
3 rows in set (0.00 sec)

到这里实质就可以宣布,死定了。数据已溢出。

查看数据:

root@zhishutang:mysql3306.sock [zst]>select * from t_mobile;
+------------+
| mobile_no |
+------------+
| 2147483647 |
| 2147483647 |
| 2147483647 |
+------------+
3 rows in set (0.00 sec)

这里真是的男人哭吧,哭吧, … 如果是线上环境,想死的心估计大家都有了,不是简单的哭了。如果没有备份,这么重要一例数据没了,有可能意为着项目也有可能受到严重的影响。

这时也不要心存幻想在改回去就好,来看一下操作,请死心!!!

root@zhishutang:mysql3306.sock [zst]>alter table t_mobile change mobile_no mobile_no varchar(11);
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0root@zhishutang:mysql3306.sock [zst]>select * from t_mobile;
+------------+
| mobile_no |
+------------+
| 2147483647 |
| 2147483647 |
| 2147483647 |
+------------+
3 rows in set (0.00 sec)

结论

  • 生产环境更数据类型明确提出: 不允许varchar 改成int.
  • 更改数据前一定要做好备份,无论是update,delete,或是数据类型更改。

操作Tips: 如保备份一列数据?

select pk , 修改的列 from tb where 条件 ;

用命令行记录也可以,用outfile处理也行。

恢复可以用awk反向生成update语句:
cat bak.txt |awk ‘{print “update tb set 修改列名=“ 1”;”}

大概这样生成。 在执行恢复即可。

作者:吴炳锡 来源:http://wubx.net/ 联系方式: wubingxi#163.com

禁止修改varchar到int|[运维规范]相关推荐

  1. liunxs运维_Linux系统运维之运维规范.pdf

    <Linux 系统运维之运维规范> <Linux系统运维之运维规范> <Linux系统运维之运维规范> <<LLiinnuuxx系系统统运运维维之之运运 ...

  2. 服务器安全运维标准,服务器安全运维规范-安全运维的事前、事中、事后-

    办事器数据备份,包罗网坐法式文件备份,数据库文件备份.配放文件备份,如无资本最好每小时备份和同地备份. zabbix或cacti监控办事器常规形态CPU负载.内存.磁盘.流量等形态,能够显示汗青曲线, ...

  3. 服务器安全运维规范---安全运维的事前、事中、事后

    事前检查和监控 1. 服务器和网站漏洞检测,对Web漏洞.弱口令.潜在的恶意行为.违法信息等进行定期扫描. 2. 代码的定期检查,安全检查,漏洞检查. 3. 服务器安全加固,安全基线设置,安全基线检查 ...

  4. 美图秀秀DBA谈MySQL运维及优化

    随着MySQL应用的不断普及和自身发展,如何更好的优化MySQL和使用MySQL,依然是一个比较有挑战的问题,尤其是在业务快速增长的场景下.本次分享主要介绍一些通用的运维优化实践和问题,以及未来的一些 ...

  5. 运维工程师面试题(15道)

    本文目录 前言 1. Nginx反向代理配置,此类url www.abc.com/refuse,禁止访问,返回403 2. 如何使用iptables将本地80端口的请求转发到8080端口,当前主机IP ...

  6. 解密京东618大促数据库运维的攻守之道

    来自:DBAplus社群 本文根据高新刚老师在[2019 DAMS中国数据智能管理峰会]现场演讲内容整理而成. 讲师介绍 高新刚,京东数科数据库团队负责人,负责京东数科数据库平台的管理维护工作,带领团 ...

  7. OpenStack 部署运维实战

    OpenStack 简介 OpenStack 是一个开源的 IaaS 实现,它由一些相互关联的子项目组成,主要包括计算.存储.网络.由于以 Apache 协议发布,自 2010 年项目成立以来,超过 ...

  8. 网易OpenStack部署运维实战

    防伪码:没有所谓的命运,只有不同的选择. OpenStack简介 OpenStack 是一个开源的 IaaS 实现,它由一些相互关联的子项目组成,主要包括计算.存储.网络. 由于以 Apache 协议 ...

  9. 我在网易云信是如何做运维的?

    网易云信运维工程师的主要职责,包括但不限于软硬件部署.网络管理.应用代码维护.安全漏洞修复.容量规划.故障处理.性能优化等. 网易的运维工程师们很相信一个神圣的定律--墨菲定律:事情如果有变坏的可能, ...

最新文章

  1. Launcher3自定义壁纸旋转后拉伸无法恢复
  2. 【数学和算法】初识卡尔曼滤波器(三)
  3. 【Python】pandas 重复数据处理大全(附代码)
  4. 安装单机版RabitMQ,java操作rabitmq案例(来自同学给的资料,并做升级到最新版本修改,补充问题修改)
  5. Eureka常用配置详解
  6. 深入理解Java虚拟机--中
  7. .NetCore中EFCore for MySql整理(二)
  8. “编程能力差,90%会输在这点上!”谷歌开发:方法不对,努力也白费
  9. java对象--多态的好处
  10. UVA1583 - Digit Generator
  11. ASP.NET中的回调技术(CallBack)
  12. 洛谷 P1328 生活大爆炸版石头剪刀布 模拟
  13. 前端开源实战项目推荐
  14. win10镜像无法再此计算机上运行,Win10镜像无法安装提示“运行此工具时出现问题”的两种解决方案...
  15. 原生js与css3实现简单翻页动画
  16. 为什么包装类型间的相等判断应该用 equals
  17. crawler_浅谈网络爬虫
  18. 中心差分法编程C语言,中心差分法的基本理论与程序设计.docx
  19. 计算机专业省赛一等奖有什么好处,竞赛省一等奖有什么用
  20. 魔兽世界:在网吧玩WOW,遇到很多旁观者(旁)

热门文章

  1. 限界分支法优先级队列方式出口和追踪解的两种方法总结
  2. An easy problem(hdu2055)
  3. 20150309+Linux+LAMP安装-02
  4. 如何快速分析一款ios软件或需求的大流程,然后在业务层实现,不牵扯到界面?...
  5. 32-bit到64-bit 开发及升级经验
  6. Android初级第一讲---Android开发环境的配置
  7. linux svn 命令
  8. 【教女朋友学网络系列4】之今天教她一些简单的交换机实验
  9. b+树阶怎么确定_你知道危险品运输是怎么包装的吗?
  10. 发送临时文件被服务器拒绝,临时会话说服务器拒绝了您发送离线文件的请求 - 卡饭网...