oracle-SQL语言基础-事务控制命令命令
事务控制命令命令
COMMIT
ROLLBACK
SAVEPOINT
SET TRANSACTION
当第一条可执行的SQL语句开始执行,数据库事务就开始。
随着下面任一事件发生,数据库事务结束:
执行COMMIT或 ROLLBACK
执行DDL或DCL命令(自动提交)
用户退出
系统崩溃
System crashes
在执行COMMIT或ROLLBACK命令之前的数据状态(使用DML操纵数据):
数据够被恢复到改变前状态。
当前用户能够查询到使用DML操作的结果。
其它用户不能查询到当前用户使用DML操作的结果。
其它用户不能改变由当前用户锁定的行。
在执行COMMIT命令之后的数据状态(使用DML操纵数据):
改变的数据被永久保存到数据库中。
数据以前的状态永久丢失。
所有用户能查询到使用DML操作的结果。
锁定的行被释放
所有的保存点被释放。
SQL>
UPDATE emp
2 SET deptno = 10
3 WHERE empno = 7782;
1
row updated.
SQL>
COMMIT;
Commit
complete.
在执行ROLLBACK命令之后的数据状态(使用DML操纵数据):
数据的改变被撤销。
数据恢复到以前的状态。
锁定的行被释放。
SQL> DELETE FROM
employee;
14 rows
deleted.
SQL>
ROLLBACK;
Rollback
complete.
在当前事务内使用SAVEPOINT语句创建一标识
使用ROLLBACK TO
SAVEPOINT语句回退到标识处
SQL> UPDATE...
SQL> SAVEPOINT
update_done;
Savepoint created.
SQL> INSERT...
SQL>
ROLLBACK TO update_done;
Rollback complete.
SET
TRANSACTION语句:强制当前事务为整个事务内的所有SQL命令使用指定的回滚段。
SET
TRANSACTION USE ROLLBACK SEGMENT
rollback_segment_name;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。