操作数据库必须养成的好习惯

<script type="text/JavaScript"> </script> <script src="http://a.alimama.cn/inf.js" type="text/javascript"></script>

我们开发的系统中,数据是最重要的一部分,如果程序的代码错了,我们可以通过各种方式修改回来,但如

果数据失真了,将永远无法还原,那种欲哭无泪的滋味,相信经历过的人是深有体会的。可能这些小的细节

对我们来说都是微不足道的,但往往这些微不足道而且是小概率的事件将会毁了你。

记得刚开始工作的时候,我们项目组的几个人对某个市的数据进行操作,由于自己的一个不小心,写错了一

个SQL就把其中一部分的数据给毁了,那时候心理真的很难受,多么希望有个人可以骂骂我,至少心理会好受

一点,但是没有人理我,这样一直在水深火热这中,感觉自己已经到了地狱一般。经过多年程序生涯,在地

狱中也得到了一些成长,于是把自己的一点用金钱换来的经验全盘托出,希望对一些朋友有所帮助。

1、不要用Truncate Table语句。刚开始学这个语句的时候,相信很多人多会拿出来跑一跑,会很高兴地向同

事证明你的Truncate Table比Delete跑得更快,但是如果你养成这样的习惯,万一有一天误删东西的时候,

就还原不回来了,因为Truncate Table不会记录日志,所以,如果操作重要数据的时候,还是用回Delete语

句吧。 <script type="text/JavaScript"> </script> <script src="http://a.alimama.cn/inf.js" type="text/javascript"></script>

2、每次动数据库之前,都先要把数据库备份起来。这个习惯一定要养成,你操作数据库的时候,哪怕只是做

一次简单的查询或只是删除几条普通的数据,都先备份一下,不会花你很多时间,却在你失误的时候可以把

你从死亡的边缘拉回来。如果数据比较大,至少也要把表里的数据备份出来。

3、把删除语句以及更新语句、插入语句注释掉。我们操作数据库时,通常都喜欢在查询分析器里写一大堆

SQL,然后选择某一条,按F5来执行,但有时候会直接按下F5,导致所有的语句都执行,给数据造成一定的损

害。如果你把那些有影响的语句注释掉了,就算按错了也没有关系。

4、不要随便地去分离数据库。如果我们要获取整个数据库的数据时,尽量采用把数据备份下来,然后取到其

他机器上还原,而不要把数据库分离,然后再复制到其它机器附加。有时候,数据库分离了之后就会造成无

法附加,虽然概率很小,但一旦碰上了就会很麻烦,尤其是一些实时的系统。

5、自己不熟悉的数据库,不要去动它。我们维护数据库时,有时候要 出差到其他市去操作数据,这时,其

他项目组的同事可能会叫你帮忙更新这个更新那个的,如果你很熟悉数据库的结构,以及了解更新的影响程

度,那么你帮忙操作就无所谓,如果你不熟悉,尽量不操作,如果你做好了,功劳不是你的,如果出了什么

差错,你就要背黑锅了。

6、身体疲劳时不要操作数据库。加班是程序员的家常便饭,当你加班到身体很疲劳时,操作数据库失误的概

率会很大,我记得刚刚出来工作时有一次我写了一个DELETE语句,选择执行了居然漏选了一个WHERE条件,还

好数据比较多,超时了,要不然就.........

7、如果自己对数据库结构了解很透彻,而且你的数据库技术水平已经达到一定的高度,更加要小心了,通常

出现误操作导致数据失真就是这个阶段,有时候学了一个新语法就会马上拿去试着使用。

8、经常要考虑你的SQL脚本有没有什么漏洞,或者有没有其他方法可以更有效率地执行。

9、SQL SERVER2000里面有一个宝藏,就是它的联机丛书,建议经常去阅读它,当你把它读完并理解之后,你

的SQL水平基本就可以超80%的程序员了,根本不要去迷信什么NB的教材,但到了那个时候,你会发现自己懂

的东西少了,要学习的东西更多了。

先总结到这里,如果大家有什么好的经验或建议,请多多提出,大家共同交流! <script type="text/JavaScript"> </script> <script src="http://a.alimama.cn/inf.js" type="text/javascript"></script>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值