MySQL 事務
站在用戶的角度思考問題,與客戶深入溝通,找到福建網站設計與福建網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網站設計、成都網站建設、企業(yè)官網、英文網站、手機端網站、網站推廣、域名注冊、網頁空間、企業(yè)郵箱。業(yè)務覆蓋福建地區(qū)。
什么是事務?
MySQL 事務主要用于處理操作量大,復雜度高的數據。比如說,在人員管理系統(tǒng)中,你刪除一個人員,你既需要刪除人員的基本資料,也要刪除和該人員相關的信息,如信箱,文章等等,這樣,這些數據庫操作語句就構成一個事務!
在 MySQL 中只有使用了 Innodb 數據庫引擎的數據庫或表才支持事務。
事務處理可以用來維護數據庫的完整性,保證成批的 SQL 語句要么全部執(zhí)行,要么全部不執(zhí)行。
事務用來管理 insert,update,delete 語句
一般來說,事務是必須滿足4個條件(ACID):原子性(Atomicity,或稱不可分割性)、一致性(Consistency)、隔離性(Isolation,又稱獨立性)、持久性(Durability)。
原子性:一個事務(transaction)中的所有操作,要么全部完成,要么全部不完成,不會結束在中間某個環(huán)節(jié)。事務在執(zhí)行過程中發(fā)生錯誤,會被回滾(Rollback)到事務開始前的狀態(tài),就像這個事務從來沒有執(zhí)行過一樣。
一致性:在事務開始之前和事務結束以后,數據庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設規(guī)則,這包含資料的精確度、串聯性以及后續(xù)數據庫可以自發(fā)性地完成預定的工作。
隔離性:數據庫允許多個并發(fā)事務同時對其數據進行讀寫和修改的能力,隔離性可以防止多個事務并發(fā)執(zhí)行時由于交叉執(zhí)行而導致數據的不一致。事務隔離分為不同級別,包括讀未提交(Read uncommitted)、讀提交(read committed)、可重復讀(repeatable read)和串行化(Serializable)。
持久性:事務處理結束后,對數據的修改就是永久的,即便系統(tǒng)故障也不會丟失。
在 MySQL 命令行的默認設置下,事務都是自動提交的,即執(zhí)行 SQL 語句后就會馬上執(zhí)行 COMMIT 操作。因此要顯式地開啟一個事務務須使用命令 BEGIN 或 START TRANSACTION,或者執(zhí)行命令 SET AUTOCOMMIT=0,用來禁止使用當前會話的自動提交。
from 樹懶學堂 - 一站式數據知識平臺
mysql_query("begin");
mysql_query("commit");
mysql_query("rollback");
mysql_query("end");
直接這樣寫就可以了
1. 普通事務
以 begin / start transaction 開始,commit / rollback 結束的事務?;蛘呤菐в斜4纥c savepoint 的事務。
2. 鏈式事務
一個事務在提交的時候自動將上下文傳給下一個事務,也就是說一個事務的提交和下一個事務的開始是原子性的,下一個事務可以看到上一個事務的處理結果。MySQL 的鏈式事務靠參數 completion_type 控制,并且回滾和提交的語句后面加上 work 關鍵詞。
3. 嵌套事務
有多個 begin / commit / rollback 這樣的事務塊的事務,并且有父子關系。子事務的提交完成后不會真的提交,而是等到父事務提交才真正的提交。
4. 自治事務
內部事務的提交不隨外部事務的影響,一般用作記錄內部事務的異常情況。MySQL 不支持自治事務,但是某些場景可以用 MySQL 的插件式引擎來變相實現。
網站欄目:mysql事務怎么寫 mysql 事務語句
URL網址:http://jinyejixie.com/article26/dosgicg.html
成都網站建設公司_創(chuàng)新互聯,為您提供企業(yè)建站、全網營銷推廣、網站策劃、動態(tài)網站、做網站、網站排名
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯