Mic*_*ael 18
答案实际上比这里指出的要复杂一点.确实,事务是ANSI标准化的,DB2 可能会支持它们.
DB2 for z/OS可能与其他变种(LUW,Linux-Unix-Windows,最常见)完全不同.有可能陷入咆哮,这使得谈论DB2的想法几乎毫无意义.您正在谈论IBM数据库的某些特定变体,但在一个中有效的东西在另一个中可能完全无效.我将假设OP使用的任何风格都不是z/OS,因为BEGIN TRANSACTION答案被接受了.
对于那些偶然发现尝试与DB2 z/OS一起使用事务的人来说,这里有一个概述:大型机的DB2没有显式事务.没有BEGIN TRANSACTION或任何其他类似的构造.事务是隐式开始的(通常称为文档中的工作单元)并且显式提交或回滚(通常 - 许多GUI工具,如Toad,具有可以偶尔偷偷摸摸的自动提交功能).
从9.1 z/OS SQL参考手册(第28页;可从http://www-01.ibm.com/support/docview.wss?uid=swg27011656#manuals获得):
"当启动应用程序进程时,就会启动一个工作单元.当前一个工作单元以不同于应用程序进程结束的方式结束时,也会启动工作单元.工作单元通过提交操作结束,完全回滚操作或应用程序进程结束.提交或回滚操作仅影响在其结束的工作单元内进行的数据库更改.
编写脚本时最接近的是手动指定保存点.
这些看起来像这样:
SAVEPOINT A ON ROLLBACK RETAIN CURSORS;
UPDATE MYTABLE SET MYCOL = 'VAL' WHERE 1;
ROLLBACK WORK TO SAVEPOINT A;
Run Code Online (Sandbox Code Playgroud)
从表面上看,这些类似于显式交易,但它们不是.相反,它们实际上只是一个隐式事务中的时间点.出于许多目的,它们可能就足够了,但重要的是要意识到概念上的差异.
| 归档时间: |
|
| 查看次数: |
17726 次 |
| 最近记录: |