**********************事务 TPL *********************************
Transaction Process Lanuage 事务处理语句
一.什么是事务
一系列sql语句的集合,要么都执行、要么都不执行
事务的起点: 开始于第一条DML语句
事务的终点:
第一种: 结束于 commit 或 rollback
commit 提交事务
rollback 回滚事务
第二种: 执行DDL语句或DCL语句 事务会自动提交
第三种:
程序正常退出 事务会自动提交.( 点击了pl/sql developer客户端右上角 x)
程序异常终止 事务会自动回滚(程序断点 杀进程都属于异常终止 )
***********************************带检查点的事务***********************************
可以给事务 设置 若干个检查点,可以指定回滚到 事务的某一位置(检查点)
事务一旦提交,之前设置的所有检查点都没有了
演示代码:
insert into dept values(50,‘教学部‘,‘北京‘);
insert into dept values(60,‘市场部‘,‘北京‘);
savepoint sp;--设置检查点
insert into dept values(70,‘就业部‘,‘北京‘);
rollback to sp;--回滚到指定检查点
***********************************事务的4大特性(ACID)***********************************
一.原子性(Atomic)
事务要么都执行、要么都不执行...
二.一致性(Consistency)
无论转账多少次 两个账户 加起来始终是 3000 保证数据是正确的 一致的
三.隔离性(Isolaction)
事务之间互不影响 都是独立的 只有一个客户端提交了 才真正生效 另一个客户端才能查到
四.持久性(Durability)
事务一旦提交永远生效,不能再回滚了