首页 > 解决方案 > Python / psycopg2:cursor.fetchall() 在某些表上返回空列表

问题描述

我从某些表中得到空结果,尽管数据库在其他方面工作正常(并且表绝对不是空的)。

connection = psycopg2.connect(###)
cursor = connection.cursor()
query = """SELECT 1"""
cursor.execute(query)
cursor.fetchall()

返回:[(1,)]

query = """SELECT table_name FROM information_schema.tables
        WHERE table_schema = 'public' """
cursor.execute(query)
cursor.fetchall()

返回:[('table1',),('table2',)]

query = """SELECT * FROM table1"""
cursor.execute(query)
cursor.fetchall()

返回:[]

cursor.rowcount也是 0。从不存在的表中选择会给出正确的错误,所以我知道我的表名是正确的。当我的同事使用相同的连接字符串运行相同的代码时,该函数会返回数据。当我在客户端执行相同的查询时,表中有数据。当我连接到备份数据库并重新运行上述代码时,它会返回数据!

我真的不知道可能导致这种情况的原因......

我在minicondaM1 mac,Big Sur 11.2.3 上使用 psycopg2 2.8.6 (py38hbcfaee0_1) 进行全新安装。

标签: pythonpostgresqlpsycopg2

解决方案


推荐阅读