首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回滚在MySQL中不起作用

问回滚在MySQL中不起作用
EN

Stack Overflow用户
提问于 2015-12-02 10:12:16
回答 1查看 2K关注 0票数 2

默认情况下我使用的是InnoDb引擎。看起来很奇怪的是:

代码语言:javascript
复制
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)

mysql> set session transaction isolation level serializable;
Query OK, 0 rows affected (0.00 sec)

mysql> create table test_1(id int);
Query OK, 0 rows affected (0.07 sec)

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

mysql> show tables;
+------------------+
| Tables_in_reestr |
+------------------+
| test_1          |
+------------------+
1 rows in set (0.00 sec)

这看起来很奇怪,因为我开始了事务和回滚,但是没有结果。我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-02 10:45:08

为了扩展上面的注释:在MySQL中,基本上所有改变数据库对象的操作都执行自动提交。主要类别如下:

  1. 你的对象上的任何DDL,比如CREATE/ALTER/DROP TABLE/VIEW/INDEX.
  2. 任何修改系统数据库mysql的内容,比如ALTER/CREATE USER,
  3. 任何管理命令,比如ANALYZE,
  4. 任何数据加载/复制语句。

实际上,我发现最好假设INSERT、UPDATE和DELETE是安全的,而其他任何事情都是安全的。

来源:https://dev.mysql.com/doc/refman/5.7/en/implicit-commit.html

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

https://stackoverflow.com/questions/34040032

复制
相关文章

相似问题

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