一个sql引起的丢表问题
来源:互联网 发布:android 程序员发展 编辑:程序博客网 时间:2024/05/21 11:23
背景:
一个已经运行了一段时间的老系统线上存在这种业务逻辑:
start transactiondrop tables if.... a_backup;drop tables if.... a_tmp;create table a_tmp ...like a;load .....into a_tmp;rename table a ..a_backup;rename table a_tmp a;commit;
问题:
有一天一个线程执行到 rename table a 。。。a_backup;
到这里线程就断开了,然后的然后就开始悲剧了。。。,访问a的所有操作失败;
原因:
mysql中所有DDL操作和部分DML操作都是原子操作,即使你在线程中Set autocommit=0,这些语句还是要么成功,要么不成功,不会有回滚操作,所以导致了和一般的逻辑想象有点偏差的问题;
- 一个sql引起的丢表问题
- 一个问题引起的思考
- 一个笔误引起的问题
- 一个由proxool配置文件的sql语句配置引起的问题
- 引起SQL数据库超时的一种问题
- SQL 2008 索引损坏引起的问题
- Mysql SQL语句过长引起的问题
- sql注入问题引起的思考
- DBLINK引起的SQL性能问题
- 一个由模板函数引起的问题
- Hibernate session.clear()引起的一个问题
- 一个包冲突引起的问题
- url中jsessionid引起的一个问题
- 一个因为顺序问题引起的错误!
- 一个没有索引引起的问题
- 一个由__GNUC__引起的编译问题
- 一个包冲突引起的问题
- 一个WCF问题引起的反思
- 配置环境变量犯的低级错误
- hdu_2012素数判定
- [leetcode]Decode Ways
- 64位Ubuntu安装qq for linux
- android onClick()事件的三种写法
- 一个sql引起的丢表问题
- 将Activity打包成jar文件
- MySQL从文件加载数据方法
- Windows驱动_文件系统过滤驱动之四
- UIColor,CGColor,CIColor三者的区别和联系
- Dojo实现会“变身”的表格
- 08-html5游戏坦克大战第四战(画出敌人的坦克,并解决刷新问题)
- 怎么说服老板用Go语言来开发WEB应用?
- sqlite工作记录-1数据库数据读取