这两个操作作为一个不可分割的工作单元,假如仅仅第一步操作执行成功,但是第二步执行失败,那么整个事务失败,回滚到事务开始前的状态,bill和tom的QQ账户的QQ币点数还依然是500点。显然如果没有事务的概念,那么就会造成bill的100点QQ币神秘的消失了...数据库的事务就是上面提到的事务在RDB中的实现,
它由一组在业务逻辑上相互依赖的SQL语句组成,假设以上QQ账户在DB中的qq_account表结构如下:
------------------------------------
id name balance
------------------------------------
1 bill 500
2 tom 500
------------------------------------
以上事务的SQL可以表示为:
UPDATE qq_account SET balance=400 WHERE id=1;
UPDATE qq_account SET balance=600 WHERE id=2;