Python MySQL事务执行
执行事务
事务确保数据库的数据一致性。我们必须确保多个应用程序在执行数据库操作时不得修改记录。事务具有以下属性。
原子性
事务完成或没有任何反应。如果事务包含4个查询,则必须执行所有这些查询,否则不能执行任何查询。
一致性
数据库必须在事务启动之前保持一致,并且数据库在事务完成后也必须保持一致。
隔离性
事务的中间结果在当前事务之外是不可见的。
持久性
一旦提交了事务,即使系统出现故障,影响也会持续存在。
Python commit()方法
Python提供了commit()方法,该方法确保对其进行更改
数据库始终如一。
下面给出了使用commit()方法的语法。
conn.commit() #conn是连接对象
在调用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 !