私はdocsで読む:COMMITまたはROLLBACKが Connectionオブジェクトによって実行されたときにカーソルがクエリを実行すると、トランザクションの開始以来...SELECTでもトランザクションが開始されますか?
が、最終的。
import MySQLdb
db = MySQLdb.connect(user="root", db="test")
c = db.cursor()
c.execute("SELECT * FROM books")
print c.fetchall()
私はクエリがデータのみを読み取り、それを書き込みませんかどうかを知ることは困難であるためのMySQLdbは、偶数(SELECTなど)の情報を変更しないクエリにトランザクションを開始することを疑います。
- 本当ですか?
- これは、すべてのクエリの後に
cursor.commit()
を実行して、テーブルがロックされていないことを確認することを意味しますか? - 私が気付いていないその他の問題?
はい、SELECT
文は、他のようなものですので、トランザクションが開始あなた
あなたはあなたの例を説明してもらえ、そしてなぜ 'commit'がまだ必要ですか? – warvariuc
@warwaruk:この質問は更新されましたか?私はそれが違っていたことを覚えています。 – DonCallisto
いいえ、更新されていませんでした... – warvariuc