0
我到处寻找,我无法弄清楚什么是错误的。如何使用PyQT4回滚事务
我希望能够排队几个数据库查询,并能够回滚,如果任何查询失败。我无法得到这个工作,所以我试图将问题简化为一个简单的例子(开始事务,运行两个查询,试着回滚),但即使这样做不起作用。
此代码应该;启动事务,尝试创建两个表,然后回滚,以便数据库中不出现更改。
调用回滚()方法返回true,所以它说,它的工作,但是当我看到在数据库中,进行反正创建表。
这里是我的代码:
db = QSqlDatabase.database()
db.transaction()
q = QSqlQuery(db)
q.exec_("create table a ...") #omitted but I have checked they are fully valid queries
q.exec_("create table b ...")
db.rollback()
好的,看来我对交易的理解有瑕疵,那么回滚的目的是什么呢?这听起来像我可以回滚的唯一的东西是'select'和'show'这似乎有点多余 –
看看这些网站:http://stackoverflow.com/questions/2159045/when-should-i-use -transactions-in-my-queries - http://www.sitepoint.com/mysql-transactions-php-emulation/ - http://www.tutorialspoint.com/mysql/mysql-transactions.htm – PaulF