
mysql
文章平均质量分 56
记录各种业务sql
DRNB666
开发小白
展开
-
循环体中对单个事务进行回滚操作
执行事务操作时,某个事务中需要多次循环,每次循环之中又有不同的事务,这个时候想让其中一个事务即使抛异常了,也不影响之前的事务和之后的事务提交例如:批量对表格中每一个数据进行处理,每次处理涉及到其他多张表,如果运行到一半,其中一个表为空,导致整体事务回滚,之前的数据插入也失败了,这显然不符合当前预期。解决方案:1、在当前service实现类方法中加上@Transactional(rollbackFor = Exception.class)事务回滚注解,在遍历中对具体需要单个回滚的操作抽离出一个方法,原创 2022-02-24 20:19:13 · 3024 阅读 · 0 评论 -
记一次mysql突发删库,利用binlog还原数据库和对应数据
今天朋友反馈,之前服务器上跑着的一个项目,使用不了了,因为没什么人在用,今天才收到反馈,结果排查一番后突然发现,我擦,数据库怎么没了(原因至今不清楚,可能是内部人员误删,也有可能是被攻击。。。),然后慌得一批开始了数据还原的过程,经过半个多小时的努力终于还原成功数据,在此记录一下。首先想到的是通过前段时间手动备份的sql去还原数据,但是这样虽然能还原大部分数据,相应的剩余数据无法全部还原,这样子也会有问题.这时候想到了之前了解过的mysql的binlog,如果操作得当,可以一比一还原mysql的全部原创 2021-10-26 11:29:09 · 278 阅读 · 0 评论 -
查找文章上一条或者下一条的sql
业务需求:获取根据当前条件查找的文章的上一篇和下一篇文章SELECT IFNULL((select id from sys_dynamic where id < 7 order by id desc limit 1),-1) union all SELECT IFNULL((select id from sys_dynamic where id > 7 order by id asc limit 1),-1);直接复制sql即可。如果没有上篇或下篇返回-1...原创 2021-10-15 14:48:37 · 294 阅读 · 0 评论