Mysql
 sql >> Database >  >> RDS >> Mysql

Modi per evitare che i comandi di MySQLdb non siano sincronizzati; non è possibile eseguire questo comando ora (2014) eccezione

DB-API tenta di gestire le transazioni da solo, avviando una transazione al primo comando e disponendo di una propria chiamata API per eseguirne il commit, quindi:

cursor.execute( "CREATE TABLE t1 ( t1_id INT PRIMARY KEY AUTO_INCREMENT )" )
cursor.commit()
cursor.execute( "CREATE TABLE t2 ( t2_id INT PRIMARY KEY AUTO_INCREMENT )" )
cursor.commit()

A mio parere, questo è un errore di progettazione grave e lampante della DB-API di Python, che rende una seccatura seria eseguire comandi al di fuori delle transazioni e avere un controllo adeguato sulle transazioni, ad es. per usare cose come BEGIN EXCLUSIVE TRANSACTION di SQLite . È come se qualcuno senza una reale esperienza di database potesse progettare l'API...