首页 > 解决方案 > 这个mysql事务代码是多余的吗?

问题描述

我有以下MySQLdb用于数据库插入的代码

self.cursor.execute('START TRANSACTION;')
for item in data:
    self.cursor.execute('INSERT INTO...')

self.cursor.execute('COMMIT;')
self.conn.commit()

最后是self.conn.commit()多余的,还是需要在那里?

标签: pythonmysql

解决方案


如果您开始一个事务,您有责任调用COMMIT,否则当您关闭连接时它会展开。

;请注意,除非您使用交互式外壳,否则将其包含在查询中是不好的形式。它们不是必需的,并且会立即提出一堆关于它们是如何被包括在内的问题。

shell使用;分隔符来确定一个命令的停止位置和下一个命令的开始位置,在使用每个语句作为单独字符串提供的代码时,这不是必需的。


推荐阅读