首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL事务隔离

问MySQL事务隔离
EN

Stack Overflow用户
提问于 2011-11-01 22:29:47
回答 1查看 207关注 0票数 0

我在我的历史表中看到了重复的行-但是,首先更新它的事务会删除其中的数据;然后重新插入每个行的数据。其他查询都是正确的(并且在大多数情况下都能正常工作)。

为什么select语句可以看到不一致的数据视图?

代码语言:javascript
复制
create my_history_table (
  `a` int(11),
  `b` int(11),
  `timestamp` datetime
) ENGINE=InnoDB;

我们根据需要使用以下代码更新此表:

代码语言:javascript
复制
  set autocommit=0;
  set transaction isolation level read committed;
  start transaction;
    delete from my_history_table;
    <loop on cursor inserting results for each>
  commit;

在另一个存储过程中,我们将这些结果读回给客户端:

代码语言:javascript
复制
select * from my_history_table join anotherTable using (a);
EN

回答 1

Stack Overflow用户

发布于 2011-11-01 23:00:35

因此,答案是delete from;在获取锁时超时,但从MySQL 5.0.31开始,这不会自动回滚事务。所以它是在不做删除和提交的情况下进行插入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7967994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档