執(zhí)行事務(wù)
事務(wù)機制可以確保數(shù)據(jù)一致性。
事務(wù)應(yīng)該具有4個屬性:原子性盖腕、一致性赫冬、隔離性、持久性溃列。這四個屬性通常稱為ACID特性劲厌。
原子性(atomicity)。一個事務(wù)是一個不可分割的工作單位听隐,事務(wù)中包括的諸操作要么都做补鼻,要么都不做。
一致性(consistency)雅任。事務(wù)必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)风范。一致性與原子性是密切相關(guān)的。
隔離性(isolation)沪么。一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾硼婿。即一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對并發(fā)的其他事務(wù)是隔離的,并發(fā)執(zhí)行的各個事務(wù)之間不能互相干擾禽车。
持久性(durability)寇漫。持續(xù)性也稱永久性(permanence),指一個事務(wù)一旦提交殉摔,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的州胳。接下來的其他操作或故障不應(yīng)該對其有任何影響。
Python DB API 2.0 的事務(wù)提供了兩個方法 commit 或 rollback逸月。
實例:
# SQL刪除記錄語句
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
try:
# 執(zhí)行SQL語句
cursor.execute(sql)
# 向數(shù)據(jù)庫提交
db.commit()
except:
# 發(fā)生錯誤時回滾
db.rollback()