收藏
  注册
  登陆
新闻 论坛 软件下载 用户中心
Firebird中文社区 今天是: 2010年9月10日 星期五   您现在位于: 首页 →  论坛 → 问题讨论区(浏览贴子)
   问题讨论区  -  浏览贴子 (回复:3 浏览:277  ufo2003 coaco cutebit   [ 本版精华 ]  [ 版面管理 ]
 主题:谁给讲讲TRANSACTION呗?
   
sanron 
等级: 三流高手
贴子:93
积分:121
金币:0
注册:2010-1-4
          1
 谁给讲讲TRANSACTION呗?
查了些资料
了解到TRANSACTION(事务)是个很好的东西
但在SQL语句中就看见SET TRANSACTION语句与事务有关

如果我想某一些存储过程或语句必须一次执行完成
不容被打断
这种事应该由事务负责吧?

该怎么弄呢?
 
 本贴发表时间:2010-2-5 10:17:22  
Jimt 
等级: 三流高手
头衔:霸王
贴子:355
积分:368
金币:0
注册:2007-9-12
          2
 
问题太大,不好回答……

简单的说,事务就是一系列动作,如果全部成功,则全部生效,如果有一个不成功,就全部不生效,和操作前一样,主要是为了处理结构化和相关数据,保证完整性和统一性。

fb里强制所有操作必须使用事务,不过大部分访问程序都会把事务处理包含进去,外边看不到。

理论上事务可以存在于任何地方(view好象不支持),找几个例子看看吧。
 
彻头彻尾优化fb中……

力保前十??
 本贴发表时间:2010-2-5 20:07:37  
sanron 
等级: 三流高手
贴子:93
积分:121
金币:0
注册:2010-1-4
          3
 
是否只要在
SET TRANSACTION

COMMIT TRANSACTION
之间的语句都是作为一个整体来执行的?
 
 本贴发表时间:2010-2-8 9:03:23  
Jimt 
等级: 三流高手
头衔:霸王
贴子:355
积分:368
金币:0
注册:2007-9-12
          4
 
基本如此,在后面必须用commit或者rollback之一来结束事务。

不过在事务里的处理尽量简短,时间不要太长,否则容易造成其他访问者的冲突。
 
彻头彻尾优化fb中……

力保前十??
 本贴发表时间:2010-2-8 17:26:15  
 分页: [1]
主题贴类型:[ 正常 ] 
您是否还没有 注册 或还没有 登陆 本站?!