通过Python执行的Redshift查询没有返回记录
我写了以下查询,打算通过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';
如果我有错误的假设,请留言,我会调整我的回答。