gpt4 book ai didi

mysql - 回滚在 MySQL 中不起作用

转载 作者:行者123 更新时间:2023-11-29 02:19:32 25 4
gpt4 key购买 nike

我默认使用 InnoDb 引擎。这就是看起来很奇怪的地方:

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)

看起来很奇怪,因为我启动了事务并回滚了,但是没有用。那么,我做错了什么?

最佳答案

扩展上面的评论:在 MySQL 中,基本上所有更改数据库对象的操作都执行自动提交。主要类别有:

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

实际上,我发现最好假设 INSERTUPDATEDELETE 是安全的,而其他任何东西都不安全。

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

关于mysql - 回滚在 MySQL 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34040032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com