从品牌网站建设到网络营销策划,从策略到执行的一站式服务
BeginTrans用于开始一个事物;RollbackTrans用于回滚事务;CommitTrans用于提交所有的事务处理结果,即确认事务的处理
十多年专注成都网站制作,企业网站设计,个人网站制作服务,为大家分享网站制作知识、方案,网站设计流程、步骤,成功服务上千家企业。为您提供网站建设,网站制作,网页设计及定制高端网站建设服务,专注于企业网站设计,高端网页制作,对成都雨棚定制等多个领域,拥有多年的网站制作经验。
BeginTrans和CommitTrans 用于标记事务的开始和结束,在这两个之间的语句,就是作为事务处理的语句
事务是为了实现数据的一致性和并发处理,你对数据进行定义和修改时就会产生事务。
例如你执行update语句,这时事务就开始了,执行commit会提交事务,而rollback会回滚(撤销)事务。如果你什么也不做,那么正常退出程序时会自动提交,而程序异常中止则会回滚事务。
Oracle的事务开始于一个DML语句。\x0d\x0a\x0d\x0a当以下情况发生时,事务结束:\x0d\x0a\x0d\x0a1、COMMIT/ROLLBACK\x0d\x0a\x0d\x0a2、执行了DDL/DCL语句\x0d\x0a\x0d\x0a3、客户端主动断开数据库的连接(DISCONNECT)\x0d\x0a\x0d\x0a4、数据库关闭(宕机)\x0d\x0a\x0d\x0a另外,一个DDL/DCL语句实际上就是一个事务,其中隐含了COMMIT。\x0d\x0a\x0d\x0aOracle不需要特别的去指定事务的开始和结束。一个事务的结束就是下一个事务的开始。
当然不是了,在Oracle中,只有DML才会开启一个事务。也就是说Insert,Update,Delete这些都会开启一个事务,并且该事务在commit/rollback/ddl命令时会自动结束。
其他的,像查询语句Select(不包含For Update等语句)时,是不会开启一个事务的。
补充:
首先有一点非常抱歉,上次的回答中误将DML写成了DDL,可能这一点儿让你误解了。
“当insert语句后会打开事务,然后再来一个insert语句又会是一个新事物是吗”这种说法是不正确的,第一个Insert没有commit或者rollback的情况下,第二个Insert和第一个是属于同一个事务的。因为Insert不属于commit/rollback/ddl命令,而是属于DML命令。
当第一个Insert结束后,立即执行一个新建表,删除表等命令(DDL命令),则会结束当前事务。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图