事務都應該具備acid特徵。
所謂acid是atomic(原子性),consistent(一致性),isolated(隔離性),durable(持續性)四個詞的首字母所寫,下面以「銀行轉帳」為例來分別說明一下它們的含義:
1、原子性:組成事務處理的語句形成了乙個邏輯單元,不能只執行其中的一部分。換句話說,事務是不可分割的最小單元。比如:銀行轉帳過程中,必須同時從乙個帳戶減去轉帳金額,並加到另乙個帳戶中,只改變乙個帳戶是不合理的。
2、一致性:在事務處理執行前後,資料庫是一致的。也就是說,事務應該正確的轉換系統狀態。比如:銀行轉帳過程中,要麼轉帳金額從乙個帳戶轉入另乙個帳戶,要麼兩個帳戶都不變,沒有其他的情況。
3、隔離性:乙個事務處理對另乙個事務處理沒有影響。就是說任何事務都不可能看到乙個處在不完整狀態下的事務。比如說,銀行轉帳過程中,在轉帳事務沒有提交之前,另乙個轉帳事務只能處於等待狀態。
4、持續性:事務處理的效果能夠被永久儲存下來。反過來說,事務應當能夠承受所有的失敗,包括伺服器、程序、通訊以及**失敗等等。比如:銀行轉帳過程中,轉帳後帳戶的狀態要能被儲存下來。
MySQL事務處理
start transaction,commit和rollback語法 start transaction begin work commit work and no chain no release rollback work and no chain no release set autocom...
mysql事務處理
mysql的事務處理主要有兩種方法 1.用begin,rollback,commit來實現 begin開始乙個事務 rollback事務回滾 commit 事務確認 2.直接用set來改變mysql的自動提交模式 mysql預設是自動提交的,也就是你提交乙個query,就直接執行!可以通過 set ...
mysql 事務處理
只有 innodb bdb引擎支援事務 如果在執行mysql事務中 一次執行多條sql語句 其中有一條sql語句的表引擎並不支援事務操作 那麼 事務約束將對這條sql語句無效 換句話說 就是 事務執行完成 不管是 rollback 還是 commit 這條語句都不能回滾或者提交 而是在執行這條語句的...