我尝试使用psycopg2从Python应用程序中截断表。该操作返回-1,没有任何异常或任何问题的迹象。该表未被截断。该语句本身是正确的,因为当我通过psql运行它时,它可以正常工作。
DB服务器和客户端均为RHEL 7.6。我使用PostgreSQL 11.2,Python 2.75和psycopg2 2.5.1.3el7
代码很简单:
m_dbCon = psycopg2.connect(user=dbUser, password=dbPasswd, host=dbHost, port=dbPort, database=dbInstName)
curr = m_dbCon.cursor()
curr.execute('truncate table my_table')
count = curr.rowcount
curr.close()
正如我所说的,没有异常, 计数 是 -1 。
我找不到此问题的任何解释。
我在做什么错了?
答案 0 :(得分:0)
如杰里米(Jeremy)在评论中所述,如果出现TRUNCATE,应忽略 rowcount 。
我相信,没有例外意味着成功的陈述。至少在这种情况下是这样。
答案 1 :(得分:0)
你必须使用:
conn.commit()
为了永久保存对数据库所做的更改。
检查这个: https://www.postgresqltutorial.com/postgresql-python/delete/