Oracle_事務(wù)控制語句

事務(wù)是對數(shù)據(jù)庫操作的邏輯單位,在一個事務(wù)中可以包含一條或多條DML (數(shù)據(jù)操縱語言)、DDL (數(shù)據(jù)定義語言)和DCL (數(shù)據(jù)控制語言)語句,這些語句組成一個邏輯整體。

創(chuàng)新互聯(lián)公司是一家網(wǎng)站設(shè)計公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營產(chǎn)品:響應(yīng)式網(wǎng)站設(shè)計、品牌網(wǎng)站建設(shè)成都營銷網(wǎng)站建設(shè)。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡(luò)互動的體驗,以及在手機等移動端的優(yōu)質(zhì)呈現(xiàn)。成都網(wǎng)站建設(shè)、網(wǎng)站制作、移動互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運營、VI設(shè)計、云產(chǎn)品.運維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場的競爭激烈,認真對待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價值服務(wù)。

事務(wù)的執(zhí)行只有兩種結(jié)果:要么全部執(zhí)行,把數(shù)據(jù)庫帶入一個新的狀態(tài),要么全部不執(zhí)行,對數(shù)據(jù)庫不做任何修改。
對事務(wù)的操作有兩個:提交( COMMIT )和回滾( ROLLBACK )。

提交事務(wù)時,對數(shù)據(jù)庫所做的修改便永久寫入數(shù)據(jù)庫。
回滾事務(wù)時,對數(shù)據(jù)庫所做的修改全部撤銷,數(shù)據(jù)庫恢復(fù)到操作前的狀態(tài)。
事務(wù)可用于操作數(shù)據(jù)庫的任何場合,包括應(yīng)用程序、存儲過程、觸發(fā)器等。

事務(wù)具有四個屬性,這四個屬性的英文單詞首字母合在一起就是ACID 。

這四個屬性是:
·原子性( Atomicity ):事務(wù)要么全部執(zhí)行,要么全部不執(zhí)行,不允許部分執(zhí)行。
·一致性( Consistency ):事務(wù)把數(shù)據(jù)庫從一個一致狀態(tài)帶入另一個一致狀態(tài)。
·獨立性( Isolation ):一個事務(wù)的執(zhí)行不受其他事務(wù)的影響。
·持續(xù)性( Durability ):一旦事務(wù)提交,就永久有效,不受關(guān)機等情況的影響。
一個事務(wù)中可以包含多條DML語句,或者包含一條DDL語句,或者包含一條DCL語句。

事務(wù)開始于第一條SQL語句,在下列之一情況下結(jié)束:
·遇到COMMIT或ROLLBACK 命令。
·遇到一條DDL或者DCL命令。
·系統(tǒng)發(fā)生錯誤、退出或者崩潰。
總之,事務(wù)是一系列可以把系統(tǒng)帶入一個新的狀態(tài)的操作,如果事務(wù)被提交,則數(shù)據(jù)庫進入一個新的狀態(tài),否則數(shù)據(jù)庫恢復(fù)到事務(wù)以前的狀態(tài)。
在數(shù)據(jù)庫中使用事務(wù)的好處是首先可以確保數(shù)據(jù)的一致性,其次在對數(shù)據(jù)做永久修改之前可以預(yù)覽以前的數(shù)據(jù)改變,還可以將邏輯上相關(guān)的操作進行分組。
控制事務(wù)的方式有兩種,一種是隱式控制,數(shù)據(jù)庫管理系統(tǒng)根據(jù)實際情況決定提交事務(wù)還是回滾事務(wù);下載地址   springmvc整合mybatis框架源碼 
另一種方式是顯式控制,在事務(wù)的最后放置一條COMMIT或ROLLBACK命令,將事務(wù)提交或回滾。
如果是隱式控制,那么事務(wù)在遇到一條DDL命令,如CREATE ,或者遇到一條DCL 命令,如GRANT ,或者從SQL *Plus正常退出,即使沒有發(fā)出COMMIT或ROLLBACK命令,這個事務(wù)將被自動提交。
如果從SQL*Plus非正常退出或發(fā)生系統(tǒng)崩潰,那么系統(tǒng)將自動回滾事務(wù)。
如果是顯式控制,那么在事務(wù)的最后就要通過COMMIT命令提交事務(wù),或者通過一條ROLLBACK命令回滾事務(wù)。

如果事務(wù)被提交,那么對數(shù)據(jù)庫所作的修改將寫人數(shù)據(jù)庫。

如果回滾事務(wù),一般情況下將回滾到事務(wù)的開始,即對數(shù)據(jù)庫不做任何修改。
在Oracle 中,允許部分回滾事務(wù),即可以將事務(wù)有選擇地回滾到中間的某個點。
部分回滾是通過設(shè)置保存點( SAVEPOINT )來實現(xiàn)的。

事務(wù)中可以通過SAVEPOINT命令設(shè)置若干個保存點,這樣可以將事務(wù)有選擇地回滾到某一個保存點。

用戶訪問數(shù)據(jù)庫時,數(shù)據(jù)庫中的數(shù)據(jù)是放在緩沖區(qū)中的,當(dāng)前用戶可以通過查詢操作,瀏覽對數(shù)據(jù)操作的結(jié)果。
如果沒有提交事務(wù),其他用戶是看不到事務(wù)的修改結(jié)果的。

當(dāng)一個用戶修改表中的數(shù)據(jù)時,將對被修改的數(shù)據(jù)加鎖,其他用戶無法在此期間對該行數(shù)據(jù)進行修改,直到這個用戶提交或回攘這個事務(wù)。
如果在事務(wù)的最后執(zhí)行了COMMIT命令,則對數(shù)據(jù)的修改將被寫入數(shù)據(jù)庫,以前的數(shù)據(jù)將永久丟失,無法恢復(fù),其他用戶都可以瀏覽修改后的結(jié)果,在數(shù)據(jù)上加的鎖被釋放,其他用戶可以對數(shù)據(jù)執(zhí)行新的修改,在事務(wù)中設(shè)置的所有保存點將被刪除

如果在事務(wù)中設(shè)置了保存點,并且在事務(wù)的最后執(zhí)行ROLLBACK命令回滾到某個保存點,那么在此保存點之后的DML語句所做的修改將被丟棄,但是在此保存點之前的DML語句所做的修改仍然沒有寫入數(shù)據(jù)庫,還可以進行提交或回滾。

網(wǎng)站欄目:Oracle_事務(wù)控制語句
網(wǎng)站網(wǎng)址:http://muchs.cn/article32/geohpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站維護、企業(yè)建站、App設(shè)計網(wǎng)站設(shè)計公司、網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計