[Python] [Python e PostgreSQL] All'interno delle eccezioni, le transazioni si comportano diversamente?
Marco Fochesato
marcofoc a libero.it
Lun 25 Ott 2010 00:00:34 CEST
> Grazie per la versione. Vorrei vedere un pezzetto di codice con le
> operazioni che svolgi: la query, l'eccezione, la query *nell'*eccezione...
update = "UPDATE clienti.nazioni SET "+etichetta+"=%s WHERE
"+etichetta2"=%s;"
try:
cur.execute(update, (nuovo_valore, valore_statico))
connDB.commit()
except psycopg2.IntegrityError:
connDB = psycopg2.connect(connessione)
cur = connDB.cursor()
update1 = "UPDATE clienti.anagrafica_clienti SET nazione=%s
WHERE nazione=%s;"
estrai = "SELECT idnazione FROM clienti.nazioni WHERE
nome_nazione = %s;"
cur.execute(estrai, (nome_nazione,))
id_nazione_vecchio = cur.fetchone()
id_nazione_vecchio = id_nazione_vecchio[0]
cur.execute(update1, (nuovo_valore, id_nazione_vecchio,))
update2 = "UPDATE clienti.nazioni SET "+etichetta+"=%s WHERE
"+etichetta2+"=%s;"
cur.execute(update2, (nuovo_valore, valore_statico))
connDB.commit()
cur.close()
connDB.close()
Non ho mai postato del codice.. spero non si dovesse far in altra
maniera.
Le varie variabili, sono state dichiarate prima.. ma credo vadano bene
tutte. Il problema è proprio nel primo update. Mi dà errore perchè
cambio ina idnazione non ancora presente nella tabella nazioni..
Notte.
Marco
Maggiori informazioni sulla lista
Python