我在更改我的 postgres 数据库中的表时遇到了一些问题。我正在使用 psycopg2 并使用 Python。我试图添加一个串行主键。它花了很长时间(大表),并且没有抛出任何错误,所以它做了一些事情,但是当我去检查时,新列不在那里。
我希望这是我错过的愚蠢的事情,但现在我完全不知所措。
import psycopg2
username = *****
password = *****
conn = psycopg2.connect(database='mydb',user=username,password=password)
query = "ALTER TABLE mytable ADD COLUMN sid serial PRIMARY KEY"
cur = conn.cursor()
cur.execute(query)
conn.close()
我在调试时尝试过的其他事情:
- 当我删除 PRIMARY KEY 时它不起作用。
- 尝试不同的数据类型时它不起作用。
最佳答案
您需要添加一个提交语句,以便您的更改反射(reflect)在表中。在关闭连接之前添加它。
conn.commit()
关于python - 使用 psycopg 时表格不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45193241/