天天看點

mysql事務處理 執行個體_mysql事務處理用法與執行個體詳解

一個事務是一個連續的一組資料庫操作,就好像它是一個單一的工作單元進行。

換言之,永遠不會是完整的事務,除非該組内的每個單獨的操作是成功的。如果在事務的任何操作失敗,則整個事務将失敗。

實際上,會俱樂部許多SQL查詢到一個組中,将執行所有的人都一起作為事務的一部分。

事務的特性:

事務有以下四個标準屬性的縮寫ACID,通常被稱為:

原子性: 確定工作單元内的所有操作都成功完成,否則事務将被中止在故障點,和以前的操作将復原到以前的狀态。

一緻性: 確定資料庫正确地改變狀态後,成功送出的事務。

隔離性: 使事務操作彼此獨立的和透明的。

持久性: 確定送出的事務的結果或效果的系統出現故障的情況下仍然存在。

在MySQL中,事務開始使用COMMIT或ROLLBACK語句開始工作和結束。開始和結束語句的SQL指令之間形成了大量的事務。

COMMIT & ROLLBACK:

這兩個關鍵字送出和復原主要用于MySQL的事務。

當一個成功的事務完成後,發出COMMIT指令應使所有參與表的更改才會生效。

如果發生故障時,應發出一個ROLLBACK指令傳回的事務中引用的每一個表到以前的狀态。

可以控制的事務行為稱為AUTOCOMMIT設定會話變量。如果AUTOCOMMIT設定為1(預設值),然後每一個SQL語句(在事務與否)被認為是一個完整的事務,并承諾在預設情況下,當它完成。 AUTOCOMMIT設定為0時,發出SET AUTOCOMMIT =0指令,在随後的一系列語句的作用就像一個事務,直到一個明确的COMMIT語句時,沒有活動的送出。

可以通過使用mysql_query()函數在PHP中執行這些SQL指令。

原文: http://www.cnblogs.com/ymy124/p/3718439.html