ho letto nella docs:Una transazione inizia anche su SELECT?
... dal momento che le operazioni iniziano quando un cursore esegue una query, ma fine quando commit o rollback viene eseguito dall'oggetto Connection.
import MySQLdb
db = MySQLdb.connect(user="root", db="test")
c = db.cursor()
c.execute("SELECT * FROM books")
print c.fetchall()
Ho il sospetto che MySQLdb avvia una transazione anche su query che non modificano i dati (come SELEZIONA), perché è difficile sapere se una query legge solo i dati e non scriverlo.
- È vero?
- Se è così, questo significa che dovrei fare
cursor.commit()
dopo ogni query, per essere sicuro che nessuna tabella sia bloccata? - Altri problemi di cui non sono a conoscenza?
Grazie
Potrebbe spiegare il tuo esempio, e perché 'è ancora necessaria commit'? – warvariuc
@warwaruk: questa domanda è stata aggiornata? Perché ricordo che era diverso. – DonCallisto
No, non è stato aggiornato ... – warvariuc