2016-10-03 3 views
0

У меня есть список Python newcol, который я хочу добавить в существующую таблицу Postgresql. Я использовал следующий код:Как добавить новый столбец (список Python) в таблицу Postgresql?

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 ...' не добавляет значения из списка - это только добавить/создать (пустой) столбец. Чтобы добавить значения в этот столбец, вам нужно «ОБНОВИТЬ» - изучить SQL. – furas

+0

@furas, woops, немного запутался, когда потянул его в Python. В SQL я вручную добавлял каждую строку в прошлом. Есть ли способ обновить значения и добавить весь список? – dtluther

+0

Вы можете использовать цикл 'for', чтобы получить элемент из списка и выполнить запрос' UPDATE'. – furas

ответ

0

ALTER TABLE только изменяет схему таблицы - в вашем случае он создаст новый столбец и инициализирует его пустыми (NULL) значениями.

Чтобы добавить список значений в этот раздел, вы можете: UPDATE TABLE <table> SET ... в цикле.

Смежные вопросы