Python教程-执行事务
事务确保数据库的数据一致性。我们必须确保在执行数据库操作时,不允许多个应用程序修改记录。事务具有以下属性。
- 原子性 事务要么完成,要么不执行任何操作。如果一个事务包含4个查询,则必须执行所有这些查询,或者不执行任何一个。
- 一致性 事务在开始之前数据库必须保持一致,在事务完成后数据库也必须保持一致。
- 隔离性 事务的中间结果对当前事务之外的其他事务不可见。
- 持久性 一旦事务提交,效果就是持久的,即使在系统故障之后也是如此。
Python commit() 方法
Python 提供了 commit() 方法,该方法确保对数据库所做的更改以一致的方式进行。
使用 commit() 方法的语法如下。
conn.commit() #conn is the connection object
所有修改数据库记录的操作在调用 commit() 方法之前都不会生效。
Python rollback() 方法
rollback() 方法用于撤消对数据库所做的更改。如果在数据库操作期间发生错误,此方法非常有用,我们可以回滚该事务以保持数据库的一致性。
使用 rollback() 的语法如下。
Conn.rollback()
关闭连接
一旦完成数据库相关的所有操作,我们需要关闭数据库连接。Python 提供了 close() 方法。使用 close() 方法的语法如下。
conn.close()
在以下示例中,我们正在删除所有属于 CS 部门工作的员工。
示例
import mysql.connector
#Create the connection object
myconn = mysql.connector.connect(host = "localhost", user = "root",passwd = "google",database = "PythonDB")
#creating the cursor object
cur = myconn.cursor()
try:
cur.execute("delete from Employee where Dept_id = 201")
myconn.commit()
print("Deleted !")
except:
print("Can't delete !")
myconn.rollback()
myconn.close()
输出:
Deleted !