隱式事務又稱自動提交事務,就這麼點區別,說多點就是下面這一大段
事務是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...