首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有使用MySQL/InnoDB回滚事务

没有使用MySQL/InnoDB回滚事务
EN

Stack Overflow用户
提问于 2010-11-26 22:41:58
回答 1查看 1.5K关注 0票数 1

为什么在使用InnoDB引擎时没有回滚以下事务?

代码语言:javascript
复制
create table test ( i integer ) Engine = InnoDB;
begin;
insert into test(i) values(10);
insert into test(i) values(20);
rollback;
select count(*) from test;

返回2而不是0!

我错过了什么?这一切为什么要发生?应该做些什么才能使它的行为正确?

编辑:

如果我在Debian x86_64.上使用start transaction而不是用5.0.51和5.1.49尝试,

  • 也不起作用。

答案:

我从零开始重新安装DB,包括完全删除以前的安装(清除),并从一开始就重新安装。

现在起作用了。

如果有人能解释我出了什么问题,我会很高兴的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-27 07:51:10

我不认为你的代码有什么问题。下面正是Mac上的MySQL Ver 14.14远端5.1.44的代码,显示了您期望的结果:

代码语言:javascript
复制
mysql> create table test (i integer) Engine = InnoDB;
Query OK, 0 rows affected (0.10 sec)

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into test(i) values(10);
Query OK, 1 row affected (0.01 sec)

mysql> insert into test(i) values(20);
Query OK, 1 row affected (0.00 sec)

mysql> rollback;
Query OK, 0 rows affected (0.00 sec)

mysql> select count(*) from test;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.01 sec)

mysql> 

您使用的是什么版本的MySQL?什么站台?你是怎么输入这些命令的?例如,是否有可能在新连接中输入每个单独的命令?这也许可以解释这种行为。

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

https://stackoverflow.com/questions/4289001

复制
相关文章

相似问题

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