隱式事務和顯示事務

2021-10-12 10:04:06 字數 1305 閱讀 4263

隱式事務又稱自動提交事務,就這麼點區別,說多點就是下面這一大段

事務是sql server防止你的資料出現不一致狀態的基礎結構.我們已經學習過事務是如

何工作的.在這一節中,我們將學習在sql server開發環境下如何讓事務為你工作.s q l

s e r v e r中事務有兩種,它們是隱式事務和顯式事務。

隱式事務

隱式事務是sql server為你而做的事務.隱式事務又稱自動提交事務.如果執行一條

ddl語句ordcl語句or正常退出sql*plus,但沒有明確發出commit和rollback

則會觸發隱式事務自動提交

隱式提交的注意事項

1、執行ddl語句時,前面的dml操作也會被提交到資料庫中

因為是在乙個session裡,那執行ddl語句的時候前面的dml語句肯定也會「不可倖免」的被提交到庫中。

2、即使ddl語句執行失敗,前面的dml操作也會被提交到資料庫中

這就有點兒讓人奇怪了,ddl都執行失敗了,怎麼還會提交呢?這就需要**一下隱式提交的本質了(下文有敘述)。

3、在前面1和2的基礎上總結

為了避免隱式提交或者回滾,盡量保證一條或者幾條dml操作完成後有顯示的提交或者回滾,防止後續執行的dcl或者ddl自動提交前期的dml操作。

隱式提交的本質

1、一條ddl語句執行了兩次commit

commit;

ddl statement;

commit;

第乙個commit將當前session中未提交的事務隱式提交,以保證ddl語句失敗時的回滾位置。

第二個commit將ddl 提交

提交的三種方式

(1) 顯式提交

用commit命令直接完成的提交為顯式提交。其格式為:

sql>commit;

(2) 隱式提交

用sql命令間接完成的提交為隱式提交。這些命令是:

alter,audit,comment,connect,create,disconnect,drop,

exit,grant,noaudit,quit,revoke,rename。

(3) 自動提交

若把autocommit設定為on,則在插入、修改、刪除語句執行後,

系統將自動進行提交,這就是自動提交。其格式為:

sql>set autocommit on;

隱式事務 自動提交事務

如果你一次執行單條查詢語句,則沒有必要啟用事務支援,資料庫預設支援sql執行期間的讀一致性 如果你一次執行多條查詢語句,例如統計查詢,報表查詢,在這種場景下,多條查詢sql必須保證整體的讀一致性,否則,在前條sql查詢之後,後條sql查詢之前,資料被其他使用者改變,則該次整體的統計查詢將會出現讀資料...

隱式事務 自動提交事務

如果你一次執行單條查詢語句,則沒有必要啟用事務支援,資料庫預設支援sql執行期間的讀一致性 如果你一次執行多條查詢語句,例如統計查詢,報表查詢,在這種場景下,多條查詢sql必須保證整體的讀一致性,否則,在前條sql查詢之後,後條sql查詢之前,資料被其他使用者改變,則該次整體的統計查詢將會出現讀資料...

MYSQL中預設隱式事務及利用事務DML

一 預設情況下,mysql採用autocommit模式執行。這意味著,當您執行乙個用於更新 修改 表的語句之後,mysql立刻把更新儲存到磁碟中。預設級別為不可重複讀。二 會造成隱式提交的語句 以下語句 以及同義詞 均隱含地結束乙個事務,似乎是在執行本語句前,您已經進行了乙個commit。1 alt...