一条sql引发的“血案”
前几天有一个项目要上线,需要对表的一个字段进行扩充,项目经理让我准备脚本,于是我准备了如下的脚本:
alter table ord_log1 modify (PID CHAR(48)); alter table ord_log2 modify (PID CHAR(48)); alter table his_ord_log modify (PID CHAR(48));
结果上线的时候,ord_log1和ord_log2表中有30万数据,在执行的时候,直接导致锁表了几分钟,所有的交易失败!大概有1000多笔的交易处理失败,内心上万头草泥马奔过!后来通报批评。
不巧的是,执行的dba因为是新人,所以也没有在意,老练的dba看到这个脚本,说应该用VARCHAR,而不应该用CHAR,因为CHAR会将原来的记录加空格填充。
后来开会,领导都很紧张,紧张的是被批评了,他们的绩效考核什么都会有影响。由于脚本是我写的,锅肯定由我来背了,但说真心的,锅我可以背,但我觉得我也没有什么愧疚的,因为我确实不太了解这个机制。绩效评了差,年终奖什么的也会受影响,再加上原本工资就很低,吃一堑,长一智!
这件事引发的后果,导致我直接产生了离职的念头,当然这个只是个导火索,所有接下来的9,10月份,我会全力开始找工作,the time has come!