2010-04-22 28 views
0

我有一些疑問如下如果什麼系統崩潰當我鍵入SQL命令

我們在SQL更新場和ALTER行also.After給COMMIT命令系統crashed.Wat將發生在給出的命令,是否會更新和修改表r?

+0

代碼格式不適用於某個句子。請編輯。 – 2010-04-22 15:50:09

+0

更新和更改是否導致系統崩潰?這些命令是否真正運行,然後提交運行?我認爲更多的信息會很好。 – 2010-04-22 15:50:51

+0

你在混合一些術語。您更新一行(DML)或ALTER表(DDL),但不會「改變行」。 – 2010-04-23 06:02:30

回答

0

如果在提交事務之前發生崩潰,則不會執行更新。

3

Oracle保證這些更改完全發生,或根本不發生。如果您在commit之後但在提示返回之前崩潰,則無法分辨出發生了哪種情況。

3

取決於時間和語句順序。
Oracle在遇到任何DDL語句時自動提交事務(CREATE, DROP, RENAME, or ALTER)。
因此,如果您在交易中間有ALTER,Oracle將提交,然後每個以下語句將作爲新的單個語句事務執行。

崩潰後,中斷的事務將被回滾。

在你的情況下,你將至少有兩個獨立的事務,所以如果在第一個事務之後發生崩潰,你可能會遇到某些數量的語句被執行並提交併且其他回滾的情況。

請參閱Oracle文檔:Overview of Transaction Management