ORACLE 数据库的回滚要求

ORACLE 中数据库一旦执行了DDL语句,就无法ROLLBACK!!!!!

一:几种语言的回顾
DDL语句表现为:
SQL可分为:
数据定义语言(DDL) : Data Definition Language
数据操纵语言(DML) : Data Manipulation Language
事务控制语言(TCL):Transaction Control Language
数据查询语言(DQL):Data Query Language
数据控制语言(DCL) : Data Control Language

数据定义语言(DDL):

用于建立、修改、删除数据库对象,包括创建语句(CREATE)、修改语句(ALTER)、删除语句(DROP),比如使用CREATE TABLE创建表,使用ALTER TABLE修改表,使用DROPTABLE删除表等动作。这类语言不需要事务的参与,自动提交。

数据操作语言(DML):

用于改变数据库数据,包括INSERTUPDATEDELETE三条语句。其中,INSERT语句用于将数据插入到数据库中,UPDATE语句用于更新数据库中已存在的数据,DELETE用于删除数据库中已存在的数据。DML语言和事务是相关的,执行完DML操作后必须经过事务控制语句提交后才真正的将改变应用到数据库中。

事务控制语言(TCL):

用来维护数据一致性的语句,包括提交(COMMIT)、回滚(ROLLBACK)、保存点(SAVEPOINT)三条语句,其中COMMIT用来确认已经进行的数据库改变, ROLLBACK语句用来取消已经进行的数据库改变,当执行DML操作后(也就是上面说的增加、修改、删除等动作),可以使用COMMIT语句来确认这种改变,或者使用ROLLBACK取消这种改变。SAVEPOINT语句用来设置保存点,使当前的事务可以回退到指定的保存点,便于取消部分改变。

数据查询语言(DQL):

用来查询所需要的数据。使用最广泛,语法灵活复杂。

数据控制语言(DCL):

用于执行权限的授予和收回操作、创建用户等,包括授予(GRANT)语句,收回(REVOKE)语句,CREATE USER语句,其中GRANT用于给用户或角色授予权限, REVOKE用于收回用户或角色已有的权限。DCL语句也不需要事务的参与,是自动提交的。

二:ORACLE 数据库不能回滚主要是不想降低并发性,不然的话得将行级锁升级为表锁!
参考资料:
参考来源

你可能感兴趣的:(oracle,数据库)