TCL_事务控制语言
TCL
transaction 事务 -- DML
定义为把一连串的操作作为单个逻辑工作单元处理
----- 例如:银行转账
事务特性 ACID
原子性 atomicity 所有的数据修改 要么一起执行 要么不执行
一致性 congsistency 所有的数据修改同时得到反应
隔离性 isolation 另一个事务需要在此事务结束之后才能执行
持久性 durability 数据变动是永久的
使用事务的优点:
他们保证了数据的一致性
使用事务使得数据修改更为灵活而且修改过程是可控的
即使在用户处理失败或者系统发生故障时数据仍然是安全的
事务保证DML(数据操纵语言)语句对于数据的所作的变动是一致的
隐式事务 DDL
显式事务 DCL - commit
commit 语句完成显式事务,并且使得所有的修改是永久有效的
rollback 语句终止当前事务,使得数据库返回到以前的状态
实例:
select * from student;update student set sex = '人' where stuNo = '00011';commit;rollback; -- 回滚至上一commit之后show autocommit; -- 默认offset autoCommit on;set autoCommit off;create table AA(AA char(10)); -- 隐式commitselect * from bankcount;-- 多条语句 事务update bankcount set money = money - 10000 where countno = '110 000 2000 888';update bankcount set money = money + 10000 where countno = '110 000 2000 889';rollback;commit;-- rollback 定义保存点 savePoint;SAVEPOINT aa;update bankcount set money = money + 10000 where countno = '110 000 2000 888';SAVEPOINT bb;update bankcount set money = money - 10000 where countno = '110 000 2000 889';rollback to bb; -- 回滚之保存点之后commit;
在下列情况下,数据修改自动被回滚:
1. 系统崩溃或发生故障.
2. SQL*Plus 意外终止.
隔离性:
上锁防止多个用户同时修改数据.
上锁可以是隐式或显式的.
上锁的一些基本内容:
上锁可预防并发事务之间的破坏性的交互.
上锁是自动施行的,无须用户干预.
上锁把操作限制到可能的最小粒度.
只有在事务结束后,上锁才被解除.
DML行数据排它锁
事务排它锁

浙公网安备 33010602011771号