Как добавить новый столбец (список Python) в таблицу Postgresql?

#python #postgresql

#python #postgresql

Вопрос:

У меня есть список Python newcol , который я хочу добавить в существующую таблицу 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, это заполненный список.

Кроме того, количество строк в таблице и в списке, которые я хочу добавить, одинаковы. Я немного смущен.

Заранее спасибо за помощь.

Комментарии:

1. ALTER TABLE ... ADD COLUMN ... не добавляет значения из списка — он только добавляет / создает (пустой) столбец. Чтобы добавить значения в этот столбец, вам нужно UPDATE — изучить SQL.

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

3. Вы можете использовать for цикл для получения элемента из списка и выполнения UPDATE запроса.

Ответ №1:

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

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