Oracle 事务的开始与结束

事务是用来分割数据库活动的逻辑工作单元,事务即有起点,也有终点;

当下列事件之一发生时,事务就开始了:

  • 连接到数据库上,并执行了第一天 DML 语句;
  • 当前一个事务结束后,又输入了另外一条 DML 语句;

当下列事件之一发生时,事务就结束了:

  • 执行 COMMIT 或 ROLLBACK语句;
  • 执行一条 DLL语句,例如 CREATE TABLE 语句;在这种情况下, 会自动执行 COMMIT 语句;
  • 执行一条 DCL语句,例如GRANT语句;在这种情况下,会自动执行COMMIT语句;
  • 断开与数据库的连接。在退出SQL*Plus时,通常会输入EXIT命令,此时会自动执行COMMIT语句。如果SQL*Plus被意外终止了(例如运行SQL*Plus的计算机崩溃了),那么就会自动执行ROLLBACK语句;
  • 执行了一条DML语句,该语句却失败了;在这种情况中,会为这个无效的DML语句执行ROLLBACK;

注意:事务完成之后,如果不显示地提交或回滚事务,都被认为是不好的编程习惯,因此确保在每个事务后面都要执行COMMIT或ROLLBACK语句。

相关推荐