色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql執(zhí)行語句開啟事務

林子帆1年前9瀏覽0評論

什么是事務?

事務指一組SQL語句, 它們作為一個單獨的工作單元來執(zhí)行。在MySQL中,事務提供了一種機制來保證數(shù)據(jù)的完整性和一致性。當MySQL執(zhí)行事務時,它會在一個隔離的環(huán)境中運行此單元,在隔離的環(huán)境中可以去修改數(shù)據(jù),但不會修改數(shù)據(jù)庫的實際狀態(tài),直到事務被提交。

MySQL如何開啟事務?

MySQL使用START TRANSACTION語句來顯示的開啟一個事務,顯示開啟事務后,MySQL將自動把所有修改都存儲在緩存中,直到您使用COMMIT提交事務。如果您想撤消更改,在事務被提交前使用ROLLBACK語句進行回滾即可。

MySQL事務的隔離級別是什么?

MySQL支持四個隔離級別,分別為:讀未提交(READ UNCOMMITTED),讀已提交(READ COMMITTED),可重復讀(REPEATABLE READ)和串行化(SERIALIZABLE)。默認情況下,MySQL采用的是REPEATABLE READ隔離級別。這個級別會鎖住所有查詢過的行,保證讀取到的數(shù)據(jù)是一致的。

MySQL事務的COMMIT和ROLLBACK

COMMIT語句表示提交所有未提交的事務,并把所有修改保存到數(shù)據(jù)庫。一旦提交事務,所有修改都永久記錄在數(shù)據(jù)庫表中。如果您不想保存修改,可以使用ROLLBACK語句回滾到事務開始之前的狀態(tài)。ROLLBACK將撤消所有未提交的事務(包括當前事務)。如果您正在運行多個嵌套的事務,ROLLBACK僅撤消當前事務。

事務示例

下面是一個基本的MySQL事務示例。該事務將從一個表中刪除所有未審核的訂單,并將這些訂單的詳細信息插入另一個表中。如果在執(zhí)行事務期間發(fā)生錯誤,將發(fā)生回滾,所有更改將被撤消。

START TRANSACTION;
DELETE FROM orders WHERE status = 'UNAPPROVED';
INSERT INTO approved_orders SELECT * FROM orders WHERE status = 'APPROVED';
INSERT INTO rejected_orders SELECT * FROM orders WHERE status = 'REJECTED';
COMMIT;