2016-11-10 2 views
0

Ich möchte ein Feld bestimmter Datensätze in der REC-Tabelle aktualisieren, anstatt eine neue Einfügung vorzunehmen. Ich verwende eine TEMP-Tabelle, in die ich Datensätze einfüge. Dann überprüfe ich, ob die Datensätze in der REC-Tabelle vorhanden sind. Wenn ja, möchte ich ein bestimmtes Feld ("num") aktualisieren, indem ich den aktuellen Wert (in der TEMP-Tabelle) zu dem alten (in REC) hinzufüge. Dazu benutze ich die Funktion fetchall(), um die Werte der Spalte "num" zu speichern (aus den Datensätzen in TEMP und aus REC).Wert aus einem PostgreSQL-Datensatz speichern und von Python aktualisieren

Ich führe den folgenden Code aus, um den Wert von "num" von REC und TEMP zu sammeln und die Aktualisierung durchzuführen.

for i j in zip(res1, res2): 
    i = list (i) 
    j = list(j) 
    j[12]+= i[12] 
    cursor.execute ("UPDATE REC SET num = %s ;" % (j[12])) 

In res1 ich die übereinstimmenden Datensätze der TEMP und in res2 die übereinstimmenden Datensätze der REC gespeichert.

Dies führt jedoch in Nonsense-Werte im Feld „num“ und wird für die ganze Datensätze aktualisiert (auch solche, die nicht übereinstimm)

+0

Irgendeine Idee, um mir zu helfen? – Sovakah

Antwort

0

Haben Sie versucht, eine WHERE mit?

cursor.execute ("UPDATE REC SET num = %s WHERE num = %s;" % (j[12], j[12]))

Es würde auch helfen, wenn ich mehr von Ihrem Code sehen kann. Ich glaube, es könnte einen leichteren Weg geben, um das zu tun, was Sie zu tun versuchen.

Verwandte Themen