日期:2014-05-16  浏览次数:20343 次

事务开始和结束

《Oracle Database 11g SQL开发指南》深入浅出、全面细致地讲解了如何读取和修改数据库信息,如何使用SQL Plus和SQL Developer,如何使用数据库对象,如何编写PL/SQL程序等内容。第8章将介绍更多有关修改表内容的知识。 本节说的是事务的开始与结束。

AD: <script src="http://www.51cto.com/js/article/keywords_ad_new.js"></script>

?

8.8.2? 事务的开始与结束

?

事务是用来分割SQL语句的逻辑工作单元。事务既有起点,也有终点;当下列事件之一发生时,事务就开始了:

●?连接到数据库上,并执行一条DML语句(INSERT、UPDATE或DELETE)。

●?前一个事务结束后,又输入了另外一条DML语句。

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

●?执行COMMIT或ROLLBACK语句。

●?执行一条DDL语句,例如CREATE TABLE语句;在这种情况下,会自动执行COMMIT语句。

●?执行一条DCL语句,例如GRANT语句;在这种情况下,会自动执行COMMIT语句。GRANT语句将在下一章中介绍。

●?断开与数据库的连接。在退出SQL*Plus时,通常会输入EXIT命令,此时会自动执行COMMIT语句。

?

如果SQL*Plus被意外终止了(例如运行SQL*Plus的计算机崩溃了),那么就会自动执行ROLLBACK语句。

这适用于任何可能访问数据库的程序。例如,如果编写了一个可以访问数据库的Java程序,而这个程序崩溃了,

那么就会自动执行ROLLBACK语句。

?

●?执行了一条DML语句,该语句却失败了;在这种情况中,会为这个无效的DML语句执行ROLLBACK语句。

?

提示:

?

不显式地提交或回滚事务被认为是不好的编程习惯,因此确保在每个事务后面都要执行COMMIT或ROLLBACK语句。