12
返回列表 发新帖
楼主: qhuang

关于COMMIT的问题??

[复制链接]
论坛徽章:
112
2008新春纪念徽章
日期:2008-02-13 12:43:03马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14马上有车
日期:2014-11-03 12:40:39沸羊羊
日期:2015-03-04 14:43:432015年新春福章
日期:2015-03-06 11:57:31慢羊羊
日期:2015-03-09 16:15:39
11#
发表于 2005-1-6 11:14 | 只看该作者

我的理解

有2种方法:

第一: 设置事务为自动提交方式

SQL> show autocommit
autocommit OFF
SQL> set autocommit on;

SQL>delete from table_name where ...

即可自动提交

第二:设置自治事务

    pragma autonomous_transaction;
       ......  
     commit|rollback;
   
   用法:可将以上语句放在一个trigger里,针对A表做
DML操作,可对B表中的数据进行操作,并实现自动提交.
而不管A表上的操作是否commit;

不知道各位还有什么高见,请一起讨论.

使用道具 举报

回复
论坛徽章:
10
授权会员
日期:2005-10-30 17:05:332010年世界杯参赛球队:科特迪瓦
日期:2010-04-15 12:20:472010年世界杯参赛球队:智利
日期:2010-04-13 17:15:21生肖徽章2007版:蛇
日期:2009-09-24 13:54:11生肖徽章2007版:龙
日期:2009-09-22 13:56:012009日食纪念
日期:2009-07-22 09:30:00生肖徽章2007版:龙
日期:2009-02-10 13:45:15生肖徽章2007版:狗
日期:2009-02-03 13:53:34会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
12#
发表于 2005-1-6 11:16 | 只看该作者
依赖你所使用的前端工具,在SQL*PLUS中的设置命令是SET AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}

使用道具 举报

回复
论坛徽章:
4
ITPUB元老
日期:2005-07-25 00:36:29授权会员
日期:2005-10-31 19:50:58会员2006贡献徽章
日期:2006-04-17 13:46:34奥运会纪念徽章:花样游泳
日期:2012-09-03 19:20:10
13#
发表于 2005-1-6 11:25 | 只看该作者
set autocommit on

使用道具 举报

回复
论坛徽章:
0
14#
发表于 2005-1-6 11:44 | 只看该作者
请问自动提交的时机是什么时候呢?

使用道具 举报

回复
论坛徽章:
0
15#
 楼主| 发表于 2005-1-6 11:45 | 只看该作者
THANKS

使用道具 举报

回复
论坛徽章:
10
授权会员
日期:2005-10-30 17:05:332010年世界杯参赛球队:科特迪瓦
日期:2010-04-15 12:20:472010年世界杯参赛球队:智利
日期:2010-04-13 17:15:21生肖徽章2007版:蛇
日期:2009-09-24 13:54:11生肖徽章2007版:龙
日期:2009-09-22 13:56:012009日食纪念
日期:2009-07-22 09:30:00生肖徽章2007版:龙
日期:2009-02-10 13:45:15生肖徽章2007版:狗
日期:2009-02-03 13:53:34会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
16#
发表于 2005-1-6 11:50 | 只看该作者
最初由 lxwin2008 发布
[B]请问自动提交的时机是什么时候呢? [/B]

Controls when Oracle commits pending changes to the database. ON commits pending changes to the database after Oracle executes each successful INSERT, UPDATE, or DELETE command or PL/SQL block. OFF suppresses automatic committing so that you must commit changes manually (for example, with the SQL command COMMIT). IMMEDIATE functions in the same manner as the ON option. n commits pending changes to the database after Oracle executes n successful SQL INSERT, UPDATE, or DELETE commands or PL/SQL blocks. n cannot be less than zero or greater than 2,000,000,000. The statement counter is reset to zero after successful completion of n INSERT, UPDATE or DELETE commands or PL/SQL blocks, a commit, a rollback, or a SET AUTOCOMMIT command.

--------------------------------------------------------------------------------
Note:
For this feature, a PL/SQL block is considered one transaction, regardless of the actual number of SQL commands contained within it.  
--------------------------------------------------------------------------------

使用道具 举报

回复
论坛徽章:
0
17#
发表于 2005-1-6 17:10 | 只看该作者
Delphi/BCB通过DBE操作的默认是AutoCommit的

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表