2016-10-03 8 views
0

私は既存のPostgresqlテーブルに追加したいPythonリストnewcolを持っています。私は、次のコードを使用していますPostgresqlテーブルに新しい列(Pythonリスト)を追加するには?

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

これは私のテーブルにリストnewcolを追加、しかし、新しい列がその中に値がありません。 Pythonでは、このリストをPythonで印刷すると、それはポピュレートされたリストです。

また、テーブルの行数と追加するリストの行数は同じです。私は少し混乱しています。

ご協力いただきありがとうございます。

+0

'ALTER TABLE ... ADD COLUMN ...'はリストから値を追加しません - 追加/作成(空)列のみです。この列に値を追加するには、 'UPDATE'が必要です - SQLを学んでください。 – furas

+0

@furas、woops、それをPythonに取り込むときにちょっと混乱しました。 SQLでは、過去に各行を手動で追加しました。値を更新してリスト全体を追加する方法はありますか? – dtluther

+0

'for'ループを使ってリストから要素を取得し、' UPDATE'クエリを実行できます。 – furas

答えて

0

ALTER TABLE場合によっては、テーブルスキーマが変更されるだけです。新しいカラムが作成され、空の(NULL)値で初期化されます。

この列に値の一覧を追加するには、 UPDATE TABLE <table> SET ...のループを使用します。

関連する問題