使用psycopg时表不会改变

Ree*_*een 1 python sql postgresql psycopg2

我在更改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()
Run Code Online (Sandbox Code Playgroud)

我在调试时尝试的其他操作:

  • 当我删除PRIMARY KEY时,它不起作用。
  • 当尝试其他数据类型时,它不起作用。

sle*_*ile 6

您需要添加一个commit语句,以使您的更改反映在表中。在关闭连接之前添加它。

conn.commit()
Run Code Online (Sandbox Code Playgroud)