【學習園地】資料庫-程序中的事務

2021-02-13 大學生網絡安全尖鋒訓練營

(1)開始事務語句 

BEGIN TRANSACTION 

功能:BEGIN TRANSACTION 語句作為事務的開始。 

格式:BEGIN TRANSACTION [事務名|@事務變量名][WITH MARK[『字符串』]] 

  說明:

(1)@事務變量名是用戶定義的、含有效事務名稱的變量,該變量類型必須是 char、varchar、nchar 或 nvarchar。 

(2)WITH MARK 指定在日誌中標記事務,「字符串」是描述該標記的字符串。使用 WITH MARK 子句的事務必須指定事務名。

(3)TRANSACTION 可以只取前四個字符。

(4)BEGIN TRANSACTION語句一執行,@@TRANCOUNT 的值就增1。 

(2)提交事務語句 

COMMIT TRANSACTION 

功能:COMMIT 是提交語句,它使得自從事務開始以來所執行的所有數據修改成為資料庫的永久部分,也標誌一個事務的結束。 

格式:COMMIT TRANSACTION [事務名|@事務變量名] 

功能:結束一個用戶定義的事務,保證對數據的修改已經成功地寫入資料庫。 

說明:COMMIT TRANSACTION 的 執 行 使 全 局 變 量 @@TRANCOUNT 的值減 1。 

標誌一個事務的結束也可以使用COMMIT WORK語句 

格式:COMMIT [WORK]它與 COMMIT TRANSACTION 語句的差別在於:COMMITWORK 不帶參數。 

(3)回滾事務語句 

ROLLBACK TRANSACTION 

格式:ROLLBACK TRANSACTION [事務名|@事務變量名|事務斷點名|@事務斷點變量名] 

功能:是撤銷語句,它使得事務撤銷到起點或指定的保存點處,它也標誌一個事務的結束。 

說明:

(1)ROLLBACK TRANSACTION 將清除自事務的起點或到某個保存點所做的所有數據修改,並且釋放由事務控制的資源。如果事務撤銷到開始點,則全局變量@@TRANCOUNT 的值減1,而如果只撤銷到指定保存點,則@@TRANCOUNT 的值不變。

(2)也可以使用 ROLLBACKWORK 語句進行事務撤銷,ROLLBACK WORK 將使事務撤銷到開始點,並使全局變量@@TRANCOUNT 的值減 1。

(3)在執行 COMMIT 後不能再執行 ROLLBACK TRANSACTION,同樣 ROLLBACK TRANSACTION 後也不能再執行 COMMIT 語句。 

(4)保存事務斷點語句 SAVE TRANSACTION 

格式:SAVE TRANSACTION {保存點名|@保存點變量名} 

功能:設置保存點名,可以使一個事務內的部分操作回滾。

相關焦點

  • Rspec的資料庫事務:如何清理陳舊數據?
    Rails 4的teardown_fixtures這也意味著,如果在應用程式中使用多個資料庫,那麼應用程式將為所有資料庫創建事務。因此,Rails通過use_transactional_fixtures管理的默認資料庫事務只在主線程中可用。從技術上說,根據事務回滾策略,一個線程的資料庫記錄將獨立於其他線程。需要訪問其他線程中的某個線程的資料庫數據時請注意這一點,例如Selenium。
  • 使用Spring框架實現資料庫事務處理
    企業級應用系統在更新資料庫數據時,一般都採用資料庫事務處理,以確保資料庫數據的一致性。本文主要討論在Spring框架中如何使用資料庫事務處理更新資料庫數據。通過本課的學習,可以達到如下目標。設置為false時,SQL語句的提交由應用程式負責,應用程式必須調用commit方法,同時要在執行SQL語句異常處理塊中調用rollback方法,對異常發生前進行的資料庫進行回滾操作。在企業級應用中,事務一般是並發執行的,當事務並發執行時,就會發生資料庫數據同步的問題,具體問題可分為下面四種類型。
  • SQL資料庫中:該如何理解事務?
    什麼是事務?事務是一組原子性的sql查詢,或者說一個獨立的工作單元。如果資料庫引擎能夠成功地對資料庫應用該組查詢的全部語句,那麼就執行該組查詢。在前面的例子中,一致性確保了,即使在執行第三、四條語句之間時系統崩潰,帳戶中也不會損失100元,因為事務最終沒有提交,所以事務中所做的修改也不會保存到資料庫中。
  • 基於DM資料庫的Power Builder程序開發
    但是,如何才能得到連接資料庫所需要的最基本的信息呢?  在PowerBuilder中,系統提供了一種不可見的對象,稱為事務對象(Transaction Object)。事務對象駐留在內存中,是PowerBuilder最重要的對象之一,用於提供與資料庫連接所需要的基本信息(即連接參數)並從資料庫獲取相應的反饋數據(即狀態信息)。
  • 關於資料庫事務隔離級別與原理的四大關鍵點
    ) 隔離性(Isolation) 持久性(Durability) 以上四點也就是常說的事務ACID,資料庫具備以上特性才能保證事務(Transaction)中數據的正確性。事務A(爺爺)訪問了資料庫,目的是往資料庫裡添加新誕生葫蘆娃的信息,但是還沒有提交事務。
  • 資料庫事務處理原理與實例剖析
    【IT168專稿】本文根據【2016 第七屆中國資料庫技術大會】現場演講嘉賓葉濤老師分享內容整理而成。熟悉關係型資料庫內核的原理和技術,並有較豐富的實踐經驗。喜歡琢磨資料庫內核的基本原理和算法,並樂於討論和分享。  正文  我今天的演講叫資料庫事務處理的原理和實例剖析。共分為三部分:事務處理的原理,PostgreSQL的事務處理機制剖析,和一個簡單的總結和展望。
  • Java面試題解析(事務+緩存+資料庫+多線程+JVM)
    事務1、什麼是事務?事務的特性(ACID)什麼是事務:事務是程序中一系列嚴密的操作,所有操作執行必須成功完成,否則在每個操作所做的更改將會被撤銷,這也是事務的原子性(要麼成功,要麼失敗)。事務特性分為四個:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持續性(Durability)簡稱ACID。1、原子性:事務是資料庫的邏輯工作單位,事務中包含的各操作要麼都做,要麼都不做。
  • PHP中的PDO操作學習(二)預處理語句及事務
    PHP中的PDO操作學習(二)預處理語句及事務今天這篇文章,我們來簡單的學習一下 PDO 中的預處理語句以及事務的使用,它們都是在 PDO 對象下的操作,而且並不複雜,簡單的應用都能很容易地實現。只不過大部分情況下,大家都在使用框架,手寫的機會非常少。
  • 巨杉資料庫SequoiaDB巨杉TechSequoiaDB 分布式事務實現原理簡介
    隔離性(Isolation):多個用戶並發訪問資料庫時,資料庫為每個用戶開啟事務,不能被其他事務的操作數據所幹擾。即每個事務都感覺不到系統中有其他事務在並發地執行。持久性(Durability):一個事務成功完成後,它對資料庫的改變必須是永久的,即使出現系統故障也不會對事務有影響。
  • 為Java應用程式實現分布式資料庫
    簡介Interference是一個簡單的Java框架,使您可以使用類似JPA的接口和註解在Java應用程式中運行分布式資料庫服務。Interference服務的基本單元是一個節點-實際上,它是一個Java應用程式,其中運行服務實例。
  • 來談談MySQL事務及事務引發的問題
    在解散一個部門時應該同時處理員工表中的員工保證這個事務結束後,仍然保證所有的員工能找到對應的部門,滿足外鍵約束。隔離性(Isolation):當多個事務同時操作一個資料庫時,可能存在並發問題,此時應保證各個事務要進行隔離,事務之間不能互相干擾。
  • 軟體項目實訓及課程設計指導——如何在項目中實現日誌、事務功能
    在基於JDBC的軟體應用系統的開發實現中,事務的啟動是由JDBC驅動程序自動完成的,而事務的終止則可以是自動完成也可以是由軟體應用系統的開發人員在代碼中手動實現。事務到底是自動終止還是手動終止這要取決於在實現的程序代碼中資料庫連接對象中的自動提交狀態的值設置為true還是為false。
  • 直擊資料庫面試題:資料庫查詢語句
    對於一個查詢,如果只引用一個大型表中的幾行,則資料庫引擎可以使用行級鎖定;如果引用一個大型表的幾頁中的多行,則使用頁級鎖定;如果引用一個小型表中的所有行,則使用表級鎖定。 5. 資料庫日誌幹什麼用,資料庫日誌滿的時候再查詢資料庫時會出現什麼情況?
  • 通過加鎖控制Oracle資料庫並發事務
    在Oracle資料庫中要處理並發的話,可以通過加鎖,和設置只讀事務,以及設置隔離級別來控制處理並發。今天主要介紹的是通過加鎖來控制並發事務。在並發控制中,Oracle 主要利用了事務的特性和鎖的機制。鎖可以防止用戶訪問同一數據是相互幹擾,而事務之間存在著不同級別的隔離作用。通過加鎖避免 寫數據丟失在Oracle中,解決兩個寫事務衝突的方法就是採用「加鎖」。如當A事務要修改- - 數據時,就對該數據加鎖,禁止其他事務對該數據的修改。只有當A事務完成寫操作並將鎖打開後,才運行其他事務的寫操作。
  • 資料庫常用的事務隔離級別都有哪些?都是什麼原理?
    什麼是事務隔離?任何支持事務的資料庫,都必須具備四個特性,分別是:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability),也就是我們常說的事務ACID,這樣才能保證事務((Transaction)中數據的正確性。
  • 在實際開發中對數據流的處理,和事務處理中遇到的坑,及解決方案
    在實際開發中,一般socket編程,都要免不了對於I/O流的處理,及事務處理(就是把多件事情當作一件事情來處理,好比大家是一條線上的螞蚱,要活一起活,要完一起over )。ioutils工具類優秀的ioutils工具類的copy與的代碼示例:關於資料庫的事務回滾問題
  • spring之事務回滾技巧
    ,中間的資料庫操作發生的錯誤。2)Error異常Error表示程序在運行期間出現了十分嚴重、不可恢復的錯誤,在這種情況下應用程式只能中止運行,例如JAVA 虛擬機出現錯誤。Error是一種unchecked Exception,編譯器不會檢查Error是否被處理,在程序中不用捕獲Error類型的異常。
  • 分布式事務中的時間戳詳解
    時間戳(timestamp)是分布式事務中繞不開的重要概念,有意思的是,現在主流的幾個分布式資料庫對它的實現都不盡相同,甚至是主要區分點之一。本文聊一聊時間戳的前世今生,為了把討論集中在主題上,假設讀者已經對資料庫的 MVCC、2PC、一致性、隔離級別等概念有個基本的了解。
  • Oracle資料庫中的內存計算那點事
    對於很多關鍵業務系統而言,內存又是一種「揮發性」的和大小非常有限的存儲設備,如何在保證性能的同時使數據能持久化,如何把有限的內存投入到無限的待處理數據上是程序設計的一個重大課題。分布式內存網格技術採用key-value的內存數據存儲方式可以方便把磁碟型資料庫的數據分布到集群系統的各個節點上緩存,為簡單的數據查詢和事務提供了很高的性能。但這類技術的問題是:數據的強一致性,數據持久化,複雜報表和統計,大並發事務處理等。
  • 資料庫基礎知識-1
    DBMS的組成:數據描述及其翻譯,數據操縱及其處理,資料庫管理的例行程序2.簡述數據模型數據模型是資料庫中用來對現實世界進行抽象的工具,是資料庫中用於提供信息表示和操作手段的形式構架。應用程式是依據數據的外模式編寫的,從而應用程式不必修改,保證了數據與程序的邏輯獨立性,簡稱數據的邏輯獨立性。