我正在使用Postgres数据库。此数据库有三个模式(schema_1
,schema_2
,public
)。如果我运行简单查询,默认情况下将查询public
模式:
from sqlalchemy import create_engine
con = create_engine('postgresql+pg8000://usr:pwd@server/db')
con.execute('select count(*) from the_table')
我无法访问schema_1
或schema_2
中的表格,除非我在查询中指定路径:
con.execute('select count(*) from schema_1.the_table')
有没有办法在schema_1
中指定查询的默认路径,而无需在查询本身中指定完整路径?
我尝试过:
con.execute('SET search_path TO "schema_1";')
但这似乎不起作用:
insp = inspect(con)
print(insp.default_schema_name)
# 'public'
我相信我没有正确执行SET search_path TO "schema_1"
,因为相同的命令在其他Postgres客户端(例如pgAdmin)中有效