Python 3.x 无法使用psycopg2更新PostgrSQL表

Python 3.x 无法使用psycopg2更新PostgrSQL表,python-3.x,postgresql,psycopg2,Python 3.x,Postgresql,Psycopg2,我正在尝试使用psycopg2库更新一个表,因为我需要批量更新该列。 当我跑的时候 tr_cursor.execute("UPDATE <table-name> set <column-name> = 'KR' where id = 21;") tr_cursor.execute(“更新集='KR'其中id=21;”) 该命令在

我正在尝试使用psycopg2库更新一个表,因为我需要批量更新该列。 当我跑的时候

tr_cursor.execute("UPDATE <table-name> set <column-name> = 'KR' where id = 21;")
tr_cursor.execute(“更新集='KR'其中id=21;”)

该命令在<1秒内运行,但不会更新表。当我在datagrip中运行同一个命令时,运行需要超过4分钟(我在4分钟时停止了它,没有让它完全运行。只是想检查所需的时间)。我做错了什么?请询问所需的任何进一步信息

我猜您的更新语句中可能缺少一个
conn.commit()
conn
是您使用
conn=psycopg2.connect(…
调用创建的


这是使用psycopg的所有数据库语句的默认行为。当然,对于select,您不需要它,因为不需要提交任何内容。但这是一个可以更改的参数,请检查自动提交选项:

Ya,我想就是这样。我的代码中没有这一点。这对所有语句都是必要的还是只是更新?您通常希望
commit
修改DB表时的事务。因此,应将其用于创建/更新/删除:)。。。除非您在开始时设置
conn.autocommit=True
,否则如果它在Python中运行得比Datagrip快,那么它可能不会真正命中任何行。删除后立即打印cursor.rowcount以确认。我建议使用Psycopg2连接作为上下文管理器。如果事务成功,则提交事务,否则回滚事务。