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
[email protected]
http://lists.python.it/mailman/listinfo/python