1
数据库原理与应用技术
1.7.1.6 6.1.6 SQL中的恢复操作
6.1.6 SQL中的恢复操作

在SQL标准中,有体现事务结束的COMMIT语句和ROLLBACK语句。

1. COMMIT语句

此语句为提交命令,表示事务结束,保证将数据库的修改写到实际数据库中。

2. ROLLBACK语句

此语句为恢复命令,把前面未做过COMMIT语句的修改全部撤销。

恢复操作在不同DBMS中的实现存在一定的差异。需要注意以下两点。

(1) 执行了COMMIT语句后就不能用ROLLBACK语句撤销。EXIT、CREATE、GRANT、DROP语句会自动执行COMMIT语句。

(2) 在SQL*PLUS中,有自动提交功能,以削弱COMMIT功能,自动提交的内容不能用ROLLBACK语句恢复。执行SET AUTOCOMMIT IMMEDIATE|ON后,系统会自动执行提交功能;执行INSERT、UPDATA、DELETE后,会自动执行COMMIT语句。

在ORCAL中没有事务开始语句,程序的开始就作为事务的开始,每条COMMIT/ ROLLBACK语句可看成是事务的结束,同时可看成是另一事务的开始。

COMMIT/ROLLBACK RELEASE的作用是释放所有的数据资源,退出数据库。使用数据库时要用CONNECT与数据库相连。若在应用程序中不使用COMMIT语句,则即使不出现故障也不能保证将数据库的修改都写入实际数据库中。若出现故障,则程序对数据库的修改全被撤销,因此必须使用恢复操作语句。

SQL中的恢复操作,读者可上机观察。