TPL(事务处理语言)
【事务 Transaction】
1. 概念
作为一个单独单元的一条或者多条SQL语句组成
这个单元的每一条SQL语句都是相互依赖的
必须每一条SQL语句都成功的执行, 才可以说这个事务成功的执行了
如果有一条语句执行出错, 那么整个事务就会回滚
回到事务开始以前的状态
转账
A给B转100元
余额表
用户名 余额
A 100
B 50
A-100 B-50
UPDATE 余额表 SET 余额 = 余额 - 100 WHERE 用户名 = 'A';
A-0 B-50
UPDATE 余额表 SET 余额 = 余额 + 100 WHERE 用户名 = 'B';
A-0 B-150
2. 事务的特点 ACID:
原子性(Atomicity):
事务的多条SQL语句是一个不可分割的完整逻辑单元
一致性(Consistency):
事务中的每条SQL语句要么都是成功执行的, 要么都失败了
如果一个事务成功执行了, 那么里面的每一条SQL语句都成功执行了
如果一个事务失败了, 那么里面的每一条SQL语句都失败了
隔离性(Isolation)
不同的事务是相互隔离的
不同的事务相互访问的时候
得到的数据要么是事务发生以前的数据
要么是事务发生以后的数据
持久性(Durability)
一旦事务完成提交, 对数据的修改就是永久的
3. 操作
打开事务 START TRANSACTION;
保存到S1 SAVEPOINT s1;
设定一个节点
回滚到S1, ROLLBACK TO s1;
回到s1节点,然后继续执行ROLLBACK TO s1后面的语句!
回滚 ROLLBACK;
回到开头,然后继续执行ROLLBACK后面的语句!
提交 COMMIT;