0

この質問はこれに部分的に関連しています

次の SQL を使用すると、トランザクションがロールバックされない理由:

INSERT INTO TESTSCHEMA."test" (ID, NAME) VALUES (11111, 'SDFASDFASD');

ROLLBACK;

DB2/iSeries のドキュメントから知っているように:

ROLLBACK ステートメントは、作業単位を終了し、その作業単位によって行われたデータベースの変更をバックアウトするために使用されます。

作業単位が開始または終了したことを示す指標は何ですか? 上記の例では何がロールバックされますか?

すべての回答とリンクに感謝します。

PS。DB2/iSeries V5R4 を使用しています。

PPS。下手な英語でごめんなさい

4

2 に答える 2

2

DB2のすべては、トランザクションのスコープ内で実行されます。トランザクションは、COMMIT(明示的または暗黙的)またはROLLBACKで終了します。

デフォルトでは、多くのクライアントでautoCommitパラメーターがtrueに設定されていることに注意してください。これは、すべてのステートメントの後に暗黙のCOMMITがあることを意味します。

したがって、上記の例では、autoCommitがオンになっていて、INSERTがすぐにコミットされたと想定します。したがって、ROLLBACKステートメントは何もしませんでした。

于 2011-02-09T17:05:01.187 に答える
0

これがv5r4のiSeriesコミットメント制御トピックです。

これが、v5r4用のIBM Toolbox for JavaCommitmentControlトピックです

于 2011-02-23T02:24:44.633 に答える