扫码一下
查看教程更方便
事务是一组连续的数据库操作。就像一个单独的工作单元一样执行。mysql 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!
一般来说,事务是必须满足4个条件(acid)::原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。
1、用 begin, rollback, commit来实现
2、直接用 set 来改变 mysql 的自动提交模式:
mysql> use jiyik;
database changed
mysql> create table jiyik_transaction( id int(5)) engine=innodb; # 创建数据表
query ok, 0 rows affected (0.04 sec)
mysql> select * from jiyik_transaction;
empty set (0.01 sec)
mysql> begin; # 开始事务
query ok, 0 rows affected (0.00 sec)
mysql> insert into jiyik_transaction value(5);
query ok, 1 rows affected (0.01 sec)
mysql> insert into jiyik_transaction value(6);
query ok, 1 rows affected (0.00 sec)
mysql> commit; # 提交事务
query ok, 0 rows affected (0.01 sec)
mysql> select * from jiyik_transaction;
------
| id |
------
| 5 |
| 6 |
------
2 rows in set (0.01 sec)
mysql> begin; # 开始事务
query ok, 0 rows affected (0.00 sec)
mysql> insert into jiyik_transaction values(7);
query ok, 1 rows affected (0.00 sec)
mysql> rollback; # 回滚
query ok, 0 rows affected (0.00 sec)
mysql> select * from jiyik_transaction; # 因为回滚所以数据没有插入
------
| id |
------
| 5 |
| 6 |
------
2 rows in set (0.01 sec)
mysql>