DML需手动提交事务,DCL和DDL自动提交事务
2008-12-23 15:18
330 查看
我们知道oracle中是以事务为单位进行数据库的更改操作的。那么oracle是在什么时机来提交的呢?对于DML语句,oracle不会自动提交事务,直到有一条commit或者rollback命令来处理时才会将改动反应到数据库里。而对于DDL和DCL,oracle会马上提交,也就是说一执行完这两类语句,就会反应到数据库中,还有一种情况是,前面执行的DML没有被手动提交,执行完DDL或者DCL后,oracle也会将DML对与数据的改动提交到数据库中去。
oralce的事务开始于第一条DML语句,结束于下面几种情况
一条显式的COMMIT或者Rollback命令
一条DDL或者DCL语句
用户退出SQL*plus或者SQL*plussheet 或者iSQL*plus
系统崩溃
这种Commit和rollback机制的好处是:
保证了数据的一致性
在数据永久改变之前可以预览数据
可以将逻辑上的一组操作一起提交到数据库。我们经常需要保证表1和表2的数据一致,要么同时插入,要么同时不插入。使用这种Commit和rollback机制就非常方便。
这样我们就要在脑子里形成这样一个印象,oracle会在我们执行了DCL或者DDL时,或者正常退出SQL*plus相关工具时,进行隐式的commit操作,而在系统崩溃时,或者非正常退出SQL*plus相关工具时是会自动的回滚数据,执行rollback操作的。
还需要说明的是只要事务没有完成,你所操作的数据是被锁定的,除了你之外的其他用户,是查询不到的你所做的更改的,也是无法进行更新或者删除操作的,如果其他用户试图操作这些数据,将会被迫等待,这时往往造成机器死机,直到你把相关的数据提交或者回滚。
在oracle中我们也还可以进行语句级的回滚操作,这时我们需要定义savepoint回滚点。
oralce的事务开始于第一条DML语句,结束于下面几种情况
一条显式的COMMIT或者Rollback命令
一条DDL或者DCL语句
用户退出SQL*plus或者SQL*plussheet 或者iSQL*plus
系统崩溃
这种Commit和rollback机制的好处是:
保证了数据的一致性
在数据永久改变之前可以预览数据
可以将逻辑上的一组操作一起提交到数据库。我们经常需要保证表1和表2的数据一致,要么同时插入,要么同时不插入。使用这种Commit和rollback机制就非常方便。
这样我们就要在脑子里形成这样一个印象,oracle会在我们执行了DCL或者DDL时,或者正常退出SQL*plus相关工具时,进行隐式的commit操作,而在系统崩溃时,或者非正常退出SQL*plus相关工具时是会自动的回滚数据,执行rollback操作的。
还需要说明的是只要事务没有完成,你所操作的数据是被锁定的,除了你之外的其他用户,是查询不到的你所做的更改的,也是无法进行更新或者删除操作的,如果其他用户试图操作这些数据,将会被迫等待,这时往往造成机器死机,直到你把相关的数据提交或者回滚。
在oracle中我们也还可以进行语句级的回滚操作,这时我们需要定义savepoint回滚点。
相关文章推荐
- ORACLE EXECUTE IMMEDIATE 'DML' 不能自动提交COMMIT 'DDL'触发COMMIT
- Postgresql:9.2.1的默认事务提交模式为手动提交(default)你可以设置称自动提交模式
- SQL语言:数据定义语言(DDL),数据操作语言(DML),数据控制语言(DCL)和事务控制语言(TCL)
- Oracle Class2. SQL查询和SQL函数(Oracle数据类型,ddl,dml,dcl,事务控制语言tcl,sql操作符,sql函数,select语句,运算符,分析函数,临时表)
- 事务,DML,DDL,DCL的概念
- oracle之数据库事务的边界(DML,DDL,DCL)
- PostgreSQL事务可以包含DML、DDL、DCL
- 关闭SSMS的事务自动提交,改为手动提交
- 使用事务实现--转账问题:从0001账户转1000块到0002账户。打开"隐式事务":设置为开,删除表中数据,回滚!(默认情况为关,如果打开了则不自动提交,学要手动提交)
- Instance Nine:使用Transaction(事务) 手动提交,自动回滚
- 切换UNDO表空间--DDL使事务自动提交
- Oracle处理数据(DML+DDL+DCL)+事务
- 数据库中事务DML,DDL,DCL,数据字典概念
- Spring与Hibernate的整合,不配置事务管理器,事务会自动提交(Hibernate默认手动提交)
- DDL语句是否需要排他权限实验及DDL引起事务自动提交
- 事务,DML,DDL,DCL的概念
- SpringMvc Dao jdbcTemplate设置不自动提交(手动提交)(适用商品抢购等事务)
- oracle中DML,DCL语句自动提交
- 验证mysql的自动提交事务和手动提交事务(java版)
- SQL的四种语言:DDL、DML、DCL、TCL