一 数据库事务概念
数据库事务(Database Transaction)其实就是执行对数据库一系列操作,而事务处理则是要么完全执行所有操作,要么完全不执行任何操作,这样可以保证数据的安全性和稳定性。
二 事务特性
事务有所谓的ACID特性,其特性分别如下:
1.原子性(Atomicity):原子意为最小的粒子,或者说不能再分的事物。 数据库事务的不可再分的原则即为原子性。 组成事务的所有查询必须: 要么全部执行,要么全部取消。
2.一致性(Consistency):指数据的规则,在事务前/后应保持一致。
3.隔离性(Isolation):简单点说,某个事务的操作对其他事务不可见的。
4.持久性(Durability):当事务完成后,其影响应该保留下来,不能撤消。
三 事务用法步骤
1.开启事务:start transaction;
2.执行SQL操作;
3.提交或者回滚(commit/rollback)
四 操作实例
1.建立如下表,同时插入两条数据
mysql> create table a(
-> id int,
-> money int);
mysql> insert into a values (1,5000),(2,5000);
2.黑窗口假定为服务器端,蓝窗口假定为客户端,分别查询数据,如下
3.服务器开启事务,同时执行SQL操作,1号给2号转账500元,与此同时在服务器在没有执行commit操作下,客户端看到的仍然是原数据。
4.服务器提交确认(commit)操作,客户端看到数据已经改变
5.如果服务器再执行一次相同的事务,但最后却取消了(rollback)此次事务,客户端看到的数据没有改变