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