在工作上我们都会碰到很的事情,上次我就碰到这样尴尬事情,通过公司OA群发了一封邮件,收件的都是领导。不一会儿,好心的美女同事告诉我邮件的问题,我立马又重新再发一次,过了半小时间后,我又发现邮件还是有问题,那刻自己很是尴尬,想瞬间钻到地里的心都有,自己蒙蒙的不知道怎么办。硬着头皮再发一封,认真看了10多分钟后发出。也就是一封邮件,我发了三次,自己总结心不够静不够细心检查。
分析
想想是晚上,我还有补救的机会。因为是不对OA是不对外的,领导都下班,我必须在明天上班前解决这个尴尬的问题。
解决:
进入OA数据库,看着数据表,因为没有没有表结构,在网上找了好久没有这个版本信息,心开始乱,开始浮躁,不知道我的邮件在那个表里。
慢慢的心进下来。认真的看数据表,找到email这张表,看看容量很大,感觉判断应该是这个表。因为0A上显示我三份邮件的发出时间。我尝试通过邮件发出时间开始查询这张表,显示我邮件的内容。
我把OA这台虚拟机做了快照,因为涉及到操作数据库,怕把数据搞丢失,这个事情就大聊。做快照有个风险,因为你操作不当,你要恢复快照,你要面临从快照后,有人用OA的数据全部丢失,这个让我很难做选择。看看时间点,你除非让确实了解大家的工作习惯,不然不建议这样的做。可以把OA服务关闭。
在email这张表里,我依据这个from_id这个字段为条件去删除多余的邮件,然后在我在自己OA查看我已发出的邮件,我的天那,我个人的所有的邮件全部没有了。然后我认真看聊email这张表,用from_id这个字段其实是和user这张关联的,和你账号对应的。那也就是说,我刚才的操作是删除我的账号里全部邮件。
应该用email_id这个字段去删除。我总共发给11个人,一行纪录对应一个人。然后就开工干吧。多余的邮件全部搞定,最后我的我的发件箱里的邮件也全部恢复。
select * from email where from _id = 'wv00000183' and send_time = '2016-12-29 18:26:26'
delete from email where email_id in ('344398','344399')