我正在使用web2py dal與mysqldb適配器連接到mysql服務器。沒有「開始事務」的單個「提交」語句
我的問題:
- 爲什麼它需要一個單一的 「提交」 沒有領先後 「開始交易」 「一套自動提交= 0」
- 沒有 「選擇」 的聲明開始一個事務,如果autocommit = 0?
服務器信息: InnoDB引擎 自動提交= 1(默認值) TX_ISOLATION =重複讀取(默認值)
general_log:
100356 10:00:00 123456 Connect [email protected] on dummydb
123456 Query SET NAMES 'utf8'
123456 Query SET AUTOCOMMIT = 0
123456 Query COMMIT
123456 Query SET FOREIGN_KEY_CHECKS=1
123456 Query SET sql_mode='NO_BACKSLASH_ESCAPES'
謝謝jonathan。所以在這種情況下隱含地發佈「開始」。另一個問題:會話A中的「提交」聲明是否將會話B中的已提交更改引入會話A? (tx_isolation =可重複讀取) – 2012-01-10 08:10:30
這是Paul的答案......但是,在COMMIT之後,你開始一個新的事務,所以你也可以看到自從你開始前面的事務以來,其他人對數據庫的改變。 – 2012-01-10 15:14:14