如何向Postgresql表中添加新列(Python列表)?

3

我有一个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中打印这个列表时,它是一个已填充的列表。
此外,表格和要添加的列表的行数相同。我有点困惑。
感谢您的帮助。

2
ALTER TABLE ... ADD COLUMN ... 只是添加/创建(空)列,不会从列表中添加值。要向此列添加值,您需要使用 UPDATE 命令 - 学习 SQL。 - furas
@furas,哎呀,当我把它导入Python时有点混乱了。在SQL中,过去我是手动添加每一行的。有没有办法更新这些值并添加整个列表? - dtluther
你可以使用 for 循环从列表中获取元素并执行 UPDATE 查询。 - furas
1个回答

2

ALTER TABLE 只会更改表的架构 -- 在您的情况下,它将创建新列并用空值(NULL)初始化。

要向此列添加值列表,可以执行以下操作: 在循环中执行UPDATE TABLE <table> SET ...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接