MySQL事务处理异常:回滚失败示例
在MySQL中,当事务中的某个SQL语句执行时出现异常,如回滚操作失败时,通常会抛出RollbackError
、DatabaseError
等异常。以下是一个示例:
import mysql.connector
try:
# 创建数据库连接
db = mysql.connector.connect(
host='localhost',
user='yourusername',
password='yourpassword'
)
# 创建一个cursor对象,用于执行SQL语句
cursor = db.cursor()
# 开始事务
db.begin_transaction()
# 发生异常的SQL语句
cursor.execute("INSERT INTO test_table (value) VALUES (%s)", ('exception_value',)))
# 试图回滚事务,但可能会失败
try:
db.rollback()
print("Rollback failed, transaction still in progress.")
except mysql.connector.Error as e:
print(f"Error occurred: {e}")
# 如果一切正常,提交事务
if db.is_connected():
db.commit_transaction()
print("Transaction committed successfully.")
except mysql.connector.Error as err:
print(f"Error while connecting to MySQL: {err}")
在这个示例中,我们尝试插入一条带异常值的记录。这会导致回滚操作失败,并打印相应的错误信息。
还没有评论,来说两句吧...