mysql - MySQL/MariaDB 不回滚事务
问题描述
我正在尝试进行交易,然后回滚。
我的代码如下:
SET autocommit = OFF;
START TRANSACTION;
DROP TABLE IF EXISTS Test;
CREATE TABLE Test (test INT);
ROLLBACK;
但是,即使我调用ROLLBACK
,表Test
仍然会被创建。
这些表使用 InnoDB。我正在使用 MariaDB 版本 10.3.15。
解决方案
https://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html
... InnoDB 中的 CREATE TABLE 语句作为单个事务处理。这意味着来自用户的 ROLLBACK 不会撤消用户在该事务期间所做的 CREATE TABLE 语句。
推荐阅读
- bash - 在 Bash/Shell 中使用带有“- - -”的“粘贴”
- php - 多个嵌套依赖项的工厂模式?
- python - 导入街机模块时无法导入号码库错误
- c# - Web API 2 获取 ZIP 文件返回奇怪的符号
- python-3.x - 在 Boto 3 中将安全组与其实例匹配的最简单方法是什么?
- r - 如何沿倾斜值分割多边形和填充区域?
- c - C程序中的环形缓冲区接收信号SIGSEGV,分段错误
- django - 如何在域名内打开 Django 应用页面,而不是 domain/app_page_url?
- java - 如何将证书链和私钥导入 java 密钥库
- xamarin - App Center 应用内更新未显示在 Xamarin Android 应用中