如果有人问程序员最大的痛是什么?可能有人会说刚上线的项目就出了Bug。其实这还不是最大的痛,程序员每天都和Bug打交道,已经司空见惯了。最大的痛,是误操作了客户的数据,造成正在运行的程序宕机、死机或关机,总之就是不正常了。客户一个电话打过来,就够程序员喝一壶的。
客户数据误操作可以分为2种,一种是程序升级引起的,这种只要代码回滚再发布一个新版本就行了,风险系数较低,还比较容易解决。另一个就是数据库,今天重点要说的
数据被误删后,先要看下有没有数据库备份?如果有的话,可以还原下,及时回滚。造成的损失不会很大,但要和客户说清楚。如果没有数据库备份,可以看下数据能不能根据业务流程还原出来。如果什么办法都没有,那就赶紧报告领导吧,是杀是剐、是一肩扛下还是删库跑路,你自己定。
即使再有经验的程序员,也难免会犯低级错误。这里只介绍几种预防误操作的方法。以下是博主根据真实经历总结的。
1、不要在程序里直接执行SQL语句
以下面代码为例,Mysql数据库
update sa_saleordership set shipstatus = '6' and shopcode = '110' and billno = '20221030001';
虽然这句存在语法上的错误,但没想到Mysql是可以执行成功的。结果影响的数据行数有200多万,差不多是所有数据了。
如果我们不放到前台程序里执行,还是有机会避免的
2、update或delete之前,先select下
先执行select操作,是为了能看出update或delete影响的行数。如果和预估的有出入,就要检查下update语句了。上面那句sql,如果先执行select就能看出问题了
select * from oth_paintuser -- update oth_paintuser set AllowLogin = '1' where UserCode = '13914577687'
3、多人一起检查
想要执行的sql语句,可以发到开发群里,让其他人看看对不对?毕竟有的小问题就是看不出来,但别人能一眼看出来
相关阅读
文章评论