mysql 里面 UPDATE xxx 不加 WHERE 的严重后果!

2014-06-12 14:31:21 +08:00
 est
http://news.mydrivers.com/1/308/308165.htm


但是,在修改后台数据的过程中,张扬的数据输入出现了问题,他在最后输入的信息数据,没有添加个人信息。

这样一来,麻烦大了。因为张扬的动作,该公司40万客户的账户信息都被修改,账户余额都变成了1000元。
8758 次点击
所在节点    分享发现
29 条回复
cst4you
2014-06-12 14:34:17 +08:00
-_,- 低级错误
meizhile
2014-06-12 14:39:43 +08:00
数据库没有备份机制么
Zhang
2014-06-12 14:45:04 +08:00
这家伙中学学定语从句的时候打瞌睡了!
clino
2014-06-12 14:46:28 +08:00
数据库怎么没先备份呢...
dong3580
2014-06-12 14:47:14 +08:00
@meizhile
不是所有的时候都要备份的,有些觉得没备份的必要,但是有时候发生了还是会蛋碎。本来觉得不可能会发生低级错误,没想到还是会“不小心”,就这么犯傻了。
我去年爬了一个星期的东西,当时有些重复了。
在Sql server中写了删除语句,执行时候手贱没选中where后面的,结果几百万全部没了,恼了一整夜,又费了一周才重新爬过来。
ipconfiger
2014-06-12 14:48:25 +08:00
常年在生产系统上裸操作的正确的操作习惯是先写select,查处数据核查是要修改的后再把前面改写成update xxx set xxx什么的。
lj0014
2014-06-12 15:01:43 +08:00
同事也犯过类似的错。。。
codingpp
2014-06-12 15:05:22 +08:00
如果数据库不是myisam这样的在做update的时候会把原先一条记录标记删除,然后插入一条新的记录

老数据会被另外的purge进程删掉

那么在没有被purge前,被update的数据是否可以找回来?

mysql不清楚有没有命令可以把当前事务版本之前的数据查出来

如果我犯了这个失误以后,肯定会第一时间把mysql的数据文件保存一份的。
sanddudu
2014-06-12 15:16:08 +08:00
MySQL Workbench 默认就是不加 where 就不让执行
awebird
2014-06-12 15:21:46 +08:00
之前的公司要求所有的update和delete,不准一次批量执行,必须先select出所有的id,用脚本生成逐条sql,没50条sleep一会再继续..
还有一种场景是sql是从操作手册的word或者其它会折行的工具拷贝过来的,where条件正好被折行了,特别危险
mhycy
2014-06-12 15:39:30 +08:00
有记录有备份就恢复去。。。
leafgray
2014-06-12 15:40:29 +08:00
@ipconfiger 握手。
yushiro
2014-06-12 15:41:23 +08:00
@ipconfiger +1 我也这么干~
shizzmk
2014-06-12 17:02:00 +08:00
居然奇葩低级错误 (─.─|||
keniusahdu
2014-06-12 17:04:43 +08:00
在Oracle SQL Developer中执行过一次没加where条件。你知道手快顺手点了commit 之后是什么心情么。6000多条数据。
canesten
2014-06-12 17:08:41 +08:00
@keniusahdu
Oracle有时光机的
充分体现了Oracle的优越性
xmbaozi
2014-06-12 17:21:50 +08:00
操作2000+w的线上表,最怕update。操作前要再三检查where,然后还会在后面写上limit。
1314258
2014-06-12 17:50:09 +08:00
@xmbaozi 心里压力也太大了。。
AlanZhang
2014-06-12 19:19:39 +08:00
一个合格的网站标准:不需要登录登陆数据库操作。
qiongqi
2014-06-12 19:30:42 +08:00
这种操作,要rd发语句给dba,让dba执行,dba要在操作前做一次备份

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/117110

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX