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 !