mysql进行事务实验

MySQL默认采用自动提交(AUTOCOMMIT)模式,不是显示的开启一个事务,每个查询都被当作一个事务执行提交操作。
在当前连接中,可以通过设置AUTOCOMMIT变量来开启或者禁用自动提交功能。
mysql> show variables like 'AUTOCOMMIT';
1或者ON表示开启;0或者OFF表示禁用。
mysql> set autocommit = 0;
当 autocommit = 0 时,所有的查询都在一个事务中,直到显示的执行 commit 进行提交或者 rollback 进行回滚,该事务才最终结束,同时开启了另一个事务。

或者执行命令:
select @@tx_isolation;
start transaction;
显示声明事务.

命令行界面进入方法 :
运行cmd, 然后进入mysql的安装路径的bin目录下;
然后通过mysql -u test -p password进入;
而且进行的时候需要使用两个账号.
每个cmd窗口都需要执行 set autocommit = 0;
不然的话默认就直接提交了. 就没有事务的效果.
linux直接通过mysql -u test -p password进入.

测试 :
创建account表:
CREATE TABLE account (
id int(11) NOT NULL,
account float(255,0) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

插入测试数据:
INSERT INTO practise.account(id, account) VALUES (1, 1000);
INSERT INTO practise.account(id, account) VALUES (2, 1000);

分别通过test1和test2进行登陆.
test1执行:
set session transaction isolation level read committed;
update account set account=account+200 where id = 1;
select * from account;


image.png

test2执行:


image.png

test1执行commit;后
test2:


image.png

可以看出事务是成功的

你可能感兴趣的:(mysql进行事务实验)