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

Rispondere a