Salve a tutti, chiedo aiuto perchè ho difficoltà nel creare una nuova tabella in un database già esistente. Come DB uso MySql, che gira in locale; quello che voglio fare è prendere alcuni dati dal DB esistente, e creare una nuova tabella che immagazzini questi dati,.
Riporto il codice che ho scritto **************************************************************************************************************** import MySQLdb db = MySQLdb.connect(host = 'localhost', db = 'nome_db', user = 'user', passwd = 'password') cur = db.cursor() def createTable(cur): curs.execute('SELECT tab1.valA, tab1.valB, tab2.valC, tab2.valD\ FROM tab1 JOIN tab2 \ ON tab1.valE = tab2.valE\ WHERE tab1.valA>0') for data in cur.fetchall(): dataList.append(data) cur.execute('CREATE TABLE tab3 (\ valA char(50),\ valB char(50),\ valC char(50),\ valD char(50))') print 'tabella costruita...' curs.executemany("INSERT INTO tab3 (valA, valB, valC, valD) \ VALUES (%s,%s,%s,%s)", dataList) print 'valori inseriti' if __name__= '__main__': createTable(cur) **************************************************************************************************************** Il problema è che la tabella rimane vuota: sono create le voci, ma sebbene il programma termini senza errori nome_db.tab3 risulta una tabella con 0 righe. Se do la medesima istruzione direttamente in MySql, la tabella creata è invece corretta (con circa un migliaio di righe). Aggiungo che ho anche provato a mettere direttamente il codice CREATE ... SELECT nello stessa istruzione con executemany(), ma anche quella mi da lo stesso problema. Qualcuno sa dirmi dove sbaglio? Grazie, Francesco _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python