Python MySQL执行事务
事务确保数据库的数据一致性。我们必须确保在执行数据库操作时,不允许多个应用程序修改记录。事务具有以下属性。
- 原子性 事务要么完成,要么不执行任何操作。如果一个事务包含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()
在下面的示例中,我们正在删除所有在计算机科学系工作的员工。
示例
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 !