📜  Python MySQL执行交易

📅  最后修改于: 2020-10-25 03:47:13             🧑  作者: Mango

执行交易

事务确保数据库的数据一致性。我们必须确保执行数据库操作时多个应用程序一定不能修改记录。事务具有以下属性。

  • 原子性要么交易完成,要么什么都没有发生。如果事务包含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 !