2011-02-09 94 views
0

這個問題爲什麼要使用下面的SQL時,我的事務不會回滾部分與this one回滾可以在DB2中沒有保存點的情況下工作嗎?

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

ROLLBACK; 

當我從DB2/i系列文件稱爲:

回滾語句用於結束一個工作單元並退出該單元所做的數據庫更改。

什麼是工作單元開始或結束的指標?在上面提到的例子中會回滾什麼?

我會非常感謝所有的答案和鏈接。

PS。我正在使用DB2/iSeries V5R4。

PPS。對不起,我的英文不好

+0

嘗試將自定義參數autocommit = false添加到連接參數或url中嗎? – erloewe 2011-02-10 19:14:54

+0

我必須使用的驅動程序沒有選項autocommit(http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=%2Frzahh%2Fjavadoc%2Fcom%2Fibm%2Fas400%2Faccess %2Fdoc-files%2FJDBCProperties.html)但我試着用你提到的選項沒有任何成功:-(。無論如何,謝謝你的幫助 – 2011-02-11 07:25:15

回答

1

DB2中的一切都在一個事務的範圍內完成。事務結束於COMMIT(顯式或隱式)或ROLLBACK。

請記住,默認情況下,許多客戶端將autoCommit參數設置爲true,這意味着在每個語句後都有一個隱式COMMIT。

因此,在上面的示例中,我將假定autoCommit已打開,並且INSERT立即提交。因此,ROLLBACK語句什麼都沒做。

相關問題