數據庫事務(Database Transaction) ,是指作為單個邏輯工作單元執行的一系列操作。 事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向數據的資源。通過將一組相關操作組合為一個要么全部成功要么全部失敗的單元,可以簡化錯誤恢復並使應用程序更加可靠。---【來自百度百科】
事務的四大特性:
事務應該具有4個屬性:原子性、一致性、隔離性、持久性。這四個屬性通常稱為ACID特性。
- 原子性(atomicity)
一個事務是一個不可分割的工作單位,對於其數據修改,要么全都執行,要么全都不執行。
- 一致性(consistency)
事務在完成時,必須使所有的數據都保持一致狀態。在相關數據庫中,所有規則都必須應用於事務的修改,以保持所有數據的完整性。一致性與原子性是密切相關的。
- 隔離性(isolation)
一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對並發的其他事務是隔離的,並發執行的各個事務之間不能互相干擾。
- 持久性(durability)
持久性也稱永久性(permanence),事務完成之后,它對於系統的影響是永久性的。該修改即使出現致命的系統故障也將一直保持。
事務-保存點(Savepoint)
用於回滾時,如果想要撤回剛剛的操作,可以在這些操作之前設置一個保存點,在需要撤回時使用rollback進行回滾。
語法:
savepoint 保存點名稱
事務-回滾(rollback)
事務回滾是指將該事務已經完成的對數據庫的更新操作撤銷。
語法:
rollback to 保存點名稱--撤銷單個事務
rollback 不加保存點名稱則撤銷所有存在的事物
事務-提交(commit)
事務的提交指的是把你剛剛操作的數據真正的寫入到數據庫中,這個時候 你就不能在運用rollback進行撤銷你剛才的操作了。
數據庫一旦commit了數據,那么就會撤銷所有的保存點。所以,這時rollback會得到一個錯誤。當使用commit語句結束事務之后,其他會話將可以查看到事務變化后的新數據。