DB-API尝试自行处理事务,在第一个命令上启动事务,并拥有自己的API调用来提交它,因此:
cursor.execute( "CREATE TABLE t1 ( t1_id INT PRIMARY KEY AUTO_INCREMENT )" )cursor.commit()cursor.execute( "CREATE TABLE t2 ( t2_id INT PRIMARY KEY AUTO_INCREMENT )" )cursor.commit()
在我看来,这是Python DB-
API的一个严重的,明显的设计错误,这使得在事务之外执行命令并对事务进行适当控制变得非常麻烦。使用类似SQLite的东西
BEGIN EXCLUSIVETRANSACTION。就像没有真正数据库经验的人被允许设计API一样…



