私はmysqlサーバに接続するためにmysqldbアダプタでweb2py dalを使用しています。"トランザクションを開始"なしの単一の "コミット"文
私の質問:
- なぜそれが単一
- "= 0セットの自動コミットが" 文が始まる "選択" した後、 "取引を開始" 招くことなく "はをコミットする" 必要がありません自動コミット= 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'
ありがとう、ジョナサン。したがって、この文脈では "begin"が暗黙的に発行されます。別の質問:セッションAのステートメントを「コミット」すると、セッションBからセッションAにコミットされた変更が反映されますか? (tx_isolation = repeatable-read) –
これはPaulの答えですが、COMMIT後に新しいトランザクションを開始するので、以前のトランザクションを開始してから他の人がデータベースにコミットした変更も表示されます。 –