Fak*_*ame 3 postgresql postgresql-9.3
我在 PostgreSQL 数据库中有一个相当简单的删除查询,我通过psycopg2
.
以以下最小示例为例:
def testDelete():
db = DbInterface()
cur = db.conn.cursor()
cur.execute("DELETE FROM munamelist WHERE name='something'")
print("Results = ", cur.fetchall())
Run Code Online (Sandbox Code Playgroud)
基本上,PostgreSQL 的文档DELETE
说明:
成功完成后,DELETE 命令返回一个命令标签的形式
DELETE count
计数是删除的行数。请注意,当删除被 BEFORE DELETE 触发器抑制时,该数字可能小于与条件匹配的行数。如果 count 为 0,则查询未删除任何行(这不被视为错误)。
但是,psycopg2
当您尝试获取查询结果时会引发错误:
Traceback (most recent call last):
File "autoOrganize.py", line 370, in <module>
parseCommandLine()
File "autoOrganize.py", line 363, in parseCommandLine
testDelete()
File "autoOrganize.py", line 247, in testDelete
print("Results = ", cur.fetchall())
psycopg2.ProgrammingError: no results to fetch
Run Code Online (Sandbox Code Playgroud)
该项目是否存在并不重要,您无法获取查询结果。不psycopg2
为 SQL 返回“命令标签”?
如果没有,我如何检索控制台界面中返回的更改行数?没关系,显然cursor.rowcount
是最后一个DML
/DQL
语句中修改的行数。
DELETE
没有RETURNING
不返回结果集。所以你不能用fetch...
它调用,比如cursor.fetchall()
.
受影响的行数存储在cursor.rowcount
DML 中。
归档时间: |
|
查看次数: |
8858 次 |
最近记录: |