取消自动提交
查看 MySQL 是否开启⾃动提交事务
格式:
select @@autocommit;
注意:
@@表示全局变量,1 表示开启,0 表示关闭
取消自动提交事务:
格式:
set autocommit=0;
案例:
mysql> select @@autocommit;
+--------------+
| @@autocommit |
+--------------+
| 1
|
+--------------+
1 ⾏于数据集 (0.01 秒)
mysql> set autocommit=0;
Query OK, 0 rows affected (0.01 秒)
mysql> select @@autocommit;
+--------------+
| @@autocommit |
+--------------+
| 0
|
+--------------+
1 ⾏于数据集 (0.01 秒)
从李四的帐户取出1000元,⽬前数据库数据如下:
注意:
要在窗⼝A、窗⼝B中验证
#窗⼝A
mysql> update yh set money=money-1000 where
name='李四';
Query OK, 1 rows affected (0.01 秒)
mysql> select * from yh;
+----+--------+-------+
| id | name | money |
+----+--------+-------+
| 1 | 张三 | 1000 |
| 2 | 李四 | 1000 |
+----+--------+-------+
2 ⾏于数据集 (0.01 秒)
#在窗⼝B中查询银⾏帐户(第⼀次验证)
#提交
mysql> commit;
Query OK, 0 rows affected (0.10 秒)
#在窗⼝B中查询银⾏帐户(第⼆次验证)
再打开一个窗口
#窗⼝B
mysql> select * from yh;
+----+--------+-------+
| id | name | money |
+----+--------+-------+
| 1 | 张三 | 1000 |
| 2 | 李四 | 2000 |
+----+--------+-------+
2 ⾏于数据集 (0.01 秒)
mysql> select * from yh;
+----+--------+-------+
| id | name | money |
+----+--------+-------+
| 1 | 张三 | 1000 |
| 2 | 李四 | 1000 |
+----+--------+-------+
2 ⾏于数据集 (0.02 秒)