我编写了以下要通过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结果。
我不明白问题是什么。感谢您的阅读
答案 0 :(得分:0)
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';
如果我做了一个错误的假设请发表评论,我会重新调整我的答案。