通过Python执行的Redshift查询没有返回记录

2 投票
1 回答
1250 浏览
提问于 2025-05-16 19:03

我写了以下查询,打算通过Python来执行。

query="""SELECT DISTINCT count(*) FROM PG_TABLE_DEF WHERE schemaname='master'  AND tablename LIKE '%%tmp%%'; """
#print(query)

conn=func_redshiftconnection()
res=conn.execute(sqlalchemy.text(query))
res=res.fetchall()
print(res)                # Prints (0,)

在数据库里运行得很好,但当我通过Python和SqlAlchemy用psycopg2执行时,却得到了0条结果。

我不太明白问题出在哪里。谢谢你的阅读。

相关问题:

  • 暂无相关问题
暂无标签

1 个回答

0

在Redshift中,PG_TABLE_DEF只会返回用户能看到的表的信息。换句话说,它只会显示在你设置的search_path变量中定义的模式(schema)里的表。如果PG_TABLE_DEF没有返回你期待的结果,检查一下search_path参数是否正确设置,确保包含了相关的模式。
来源 - PG_TABLE_DEF

试试这个 -

mydb=# set search_path="$user",master;

然后运行你的查询 -

mydb=# select tablename from pg_table_def where schemaname = 'master';

如果我有错误的假设,请留言,我会调整我的回答。

撰写回答