Closed xuanzhi201111 closed 2 years ago
binlog2sql默认是输出全列数据,而my2sql默认是修改列(使用-full-columns就是全列模式了)
如果提交的变更工单里,使用的my2sql,生成修改列回滚才是绝大多人想要的吧,别的字段没变更,回滚的时候为什么要全部set一次呢 ,所以我个人建议工单里的回滚,能不能换成my2sql,而不是用binlog2sql呢,因为binlog2sql生成所有列的数据,会把别人修改的 也回滚掉了,很危险的,感觉不合理,如果这些数据没有二次修改 ,通过binlog2sql回滚肯定没有问题的,但这种被二次修改的可能还是有的。
例如我工单里,修改 id为1这条数据对应的 a、 b字段的值,最理想的是用my2sql生成修改列的回滚语句
目前的是这样的: id a b c d 1 1 1 1 1 2 2 2 2 2
工单回滚sql是通过goinception实现的,binlog2sql只是一个手动辅助工具
https://hanchuanchuan.github.io/goInception/zh/options.html#variables
开启参数 enable_minimal_rollback
使用binlog2sql生成的回滚SQL,它是包括了所有字段的值,但如果我在工单里,只修改了两个字段 a1 b1字段 ,这个时候我同事修改了 c1 d1字段 ,这个时候我想回滚我自己的修改,就会把我同事的修改也回滚掉了,但如果用my2sql的话,修改了什么字段,相对应回滚的就是什么字段的值,这样是最好的。避免了把别人的变更也回滚了。