通过python执行的Redshift查询不提供任何记录

时间:2017-04-29 08:19:15

标签: python sqlalchemy amazon-redshift psycopg2

我编写了以下要通过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和带有psycopg2的SqlAlchemy执行它时,给出了0结果。

我不明白问题是什么。感谢您的阅读

1 个答案:

答案 0 :(得分:0)

Redshift中的

PG_TABLE_DEF仅返回有关用户可见的表的信息,换句话说,它只会显示在变量search_path中定义的模式中的表。如果PG_TABLE_DEF未返回预期结果,请验证是否正确设置了search_path参数以包含相关模式。
来源 - PG_TABLE_DEF

试试这个 -

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

然后运行您的查询 -

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

如果我做了一个错误的假设请发表评论,我会重新调整我的答案。