2016-10-03 3 views
0

Ich habe eine Python-Liste newcol, die ich zu einer vorhandenen Postgresql-Tabelle hinzufügen möchte. Ich habe den folgenden Code verwendet:Wie füge ich einer Postgresql-Tabelle eine neue Spalte (Python-Liste) hinzu?

conn = psycopg2.connect(host='***', database='***', user='***', password='***') 
cur = conn.cursor() 
cur.execute('ALTER TABLE %s ADD COLUMN %s text' % ('mytable', 'newcol')) 
conn.commit() 

Diese hinzugefügt, um die Liste newcol an meinen Tisch, aber die neue Spalte keine Werte in sich hat. In Python, wenn ich die Liste in Python drucke, ist es eine ausgefüllte Liste.

Auch die Anzahl der Zeilen in der Tabelle und in der Liste, die ich hinzufügen möchte, sind gleich. Ich bin ein wenig verwirrt.

Vielen Dank im Voraus für die Hilfe.

+0

'ALTER TABLE ... ADD COLUMN ...' fügt keine Werte aus der Liste hinzu - es fügt nur eine Spalte hinzu (create (leer)). Um Werte zu dieser Spalte hinzuzufügen, benötigen Sie 'UPDATE' - lernen Sie SQL. – furas

+0

@furas, wops, wurde ein wenig verwirrt, wenn es in Python ziehen. In SQL habe ich jede Zeile in der Vergangenheit manuell hinzugefügt. Gibt es eine Möglichkeit, die Werte zu aktualisieren und die gesamte Liste hinzuzufügen? – dtluther

+0

Sie können 'for' -Schleife verwenden, um ein Element aus der Liste zu holen und eine 'UPDATE'-Abfrage auszuführen. – furas

Antwort

0

ALTER TABLE ändert nur Tabellenschema - in Ihrem Fall erstellt es die neue Spalte und initialisiert sie mit leeren (NULL) Werten.

Um eine Liste von Werten zu dieser Spalte hinzuzufügen, können Sie Folgendes tun: in einer Schleife.

Verwandte Themen