注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL 中文网

 
 
 

日志

 
 

记一次修改数据类型粗心操作导致数据异常  

2012-02-18 10:50:54|  分类: PG案例分析 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |


         最近在做一次 MySQL 迁 PG 的项目,晚上实施时犯了小错误,在对一个小表数据修改类型时,
操作失误,还好开发人员发现及时,没对业务产生严重影响,后来在测试库上做了下测试,重现了整
个过程,具体如下:

 

--1 创建测试表
CREATE TABLE ad_tmp (
 xxxx           bigint                ,
 xxxx           character varying(20) ,
 xxxx           integer               ,
 xxxxxxx        character varying(20) ,
 platform       character varying(20)             ,
 xxxxxxxxxxx    integer               ,
 config         character varying(20)               ,
 is_check       character varying(20)               ,
 status         character varying(20)               ,
 xxxxxxxxxxxxx  bigint                ,
 xxxxxxxx       bigint                ,
 xxxxxxxxxxx    integer);
 
      备注:创建表之后,插入了 200 多条数据,数据插入步骤略。
 
 
--2 查看表数据
mydb=> select count(*) from ad_tmp;
 count
-------
   275
(1 row)

mydb=> select distinct config from ad_tmp;
 config
--------
 2
 0
 1
(3 rows)

 
--3 更改表结构类型 ( character varying(20) --> smallint )
mydb=> alter table ad_tmp alter column config  type smallint using platform::smallint; 
ALTER TABLE


--4 字段类型修改后,核实数据
mydb=> select distinct config from ad_tmp;
 config
--------
      3
(1 row)
 
   备注: 字段 config 的类型由 character varying(20) 更改成 smallint 后,发现数据居然诡异
              都变成 3 了,细心的朋友可能已经发现这异常原因了,原因很简单,这里就不说明了。可
              以说是一次低级失误吧,今天记录下。
 

--5 总结

      1 生产库上的操作一定要谨慎,不管什么时候;
      2 晚上数据库维护的脚本一定要仔细检查,包括每一步;
      3 如果有临时情况发生需要修改脚本的地方,也需要仔细检查,切莫因为粗心影响整个项目实施。

  评论这张
 
阅读(25926)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016