我正在使用带有MySQLdb的Python更新表。我看到了一些示例代码,例如:
try:
affected_rows = cursor.execute('update my_table ... where ...')
db.commit()
except MySQLdb.OperationalError as e:
db.rollback()
logging.info(repr(e))
这当然是正确的,但是我想知道,如果受影响的行== 0(这意味着什么都不会被实际更新),我们是否可以只使用rollback()而不是commit(),如下所示?我猜跳过真正的提交可以提高性能吗?
try:
affected_rows = cursor.execute('update my_table ... where ...')
if affected_rows == 0:
db.rollback()
else:
db.commit()
except MySQLdb.OperationalError as e:
db.rollback()
logging.info(repr(e))
这有效吗?这是对的吗?感谢您的解释。