我的目标是使autocommit off
用于任何类型的SQL命令。并明确使用commit提交任何查询。
因此,我创建了一个具有所有特权的用户并启动了连接。我首先尝试使用设置当前会话的自动提交
set autocommit = 0;
之后,我运行select @@autocommit;
并返回0
。没关系,但只要执行create a table, insert, update
之类的操作,它就会立即生效而无需提交。
我尝试做
SET GLOBAL init_connect='SET AUTOCOMMIT=0';
不适用于root
用户。我只是在用户之上创建,认为这可能有效。但事实并非如此。
我遇到的壁橱问题是这个here。我们面临着完全相同的问题,不同之处在于,在他的情况下,他使用的是MyISAM
引擎,而我使用的是InnoDB
。
我也尝试只为一个会话做这不起作用
-- select @@autocommit; // 1
SET AUTOCOMMIT=0;
use db331;
insert into Images (iid, imagePath) values (32, 'imagePath32');
-- select @@autocommit // 0;
我的运行版本是8.0.12