公司数据库数据被我更新成 null 了,救命!

2022-07-11 16:30:58 +08:00
 kaiger

数据库有些数据值为: "保密"

前面我在用 regex_replace 函数更新一些不规范数据

我顺手就用 update lawyers set working_years=regexp_replace(working_years, "保密", null); 把 "保密" 更新为 null

结果 working_years 字段全部被更新为 null !!!

有办法恢复吗,大佬救命!!!

11971 次点击
所在节点    MySQL
79 条回复
WIN2333
2022-07-11 22:45:10 +08:00
任何数据修复都必须先备份
wdlth
2022-07-11 22:47:09 +08:00
你这 SQL 在我们 DBA 眼里肯定被打回,没有开事务,连 WHERE 也没有。
我们 UPDATE 生产库都得走 OA ,要两层审核,DBA 复核,并且会在一个部分克隆表中验证。
potatowish
2022-07-11 23:23:41 +08:00
@yeyypp92 非常同意,我一般都是先写查询语句,确定查询没问题了,再改写成更新语句,现在其他环境执行没问题了,再提交生产
jack778
2022-07-12 09:03:05 +08:00
你没有责任,这是公司的责任,因为公司允许你这个菜鸟直接更新生成数据库,狗头
scanjx
2022-07-12 09:11:40 +08:00
人和数据库有一个能跑就好
di1012
2022-07-12 09:31:49 +08:00
不加 where 条件就敢操作数据库
fiht
2022-07-12 09:40:18 +08:00
我也做过类似的事情 ahh~
不过公司上云之后就很方便了,云上的 MySQL 基本都能通过回滚救过来
James369
2022-07-12 09:48:33 +08:00
没啥事发生?看来这些用户数据没什么价值
funbox
2022-07-12 10:28:22 +08:00
职业生涯终结
skadi
2022-07-12 10:34:18 +08:00
binlog
qwerthhusn
2022-07-12 11:37:51 +08:00
缅甸急招工,来吗?
badmarillo
2022-07-12 14:34:17 +08:00
信女愿一生吃素保佑下辈子不做程序员
jiazhoulvke
2022-07-12 14:50:05 +08:00
有 binlog 怕啥,只要用的 binlog format 是 row ,改了什么都能看得到,写个脚本都能复原回来
kaiger
2022-07-12 15:10:46 +08:00
@badmarillo #72

观自在菩萨,行深般若波罗密多时照见五蕴皆空,度一切苦厄。
bzsh
2022-07-12 15:17:54 +08:00
抓取的数据啊,没所谓
someonedeng
2022-07-13 15:24:14 +08:00
下次先约好黑车,别订飞机火车票
打开 binlog
先 select 出来看看
update 要带条件
mrochcnnnnn
2022-08-31 13:17:57 +08:00
哪天在 v2 上看到一个标题:
遇到一个问题,想用 regex 来解决,好了你现在遇到两个问题了
NoahVI
2022-09-09 15:31:28 +08:00
@wdlth 想问下这种操作开事务有啥用?
wdlth
2022-09-14 21:22:02 +08:00
@NoahVI 我们的生产批量更新操作是要人工复核的,不会直接执行一条更新语句。
首先会在一个事务中更新,然后查询,最后会回滚。由另外的人来验证,验证后再让 DBA 进行将回滚改成提交执行,能降低误操作的几率。

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

https://ex.noerr.eu.org/t/865464

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

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

© 2021 V2EX