我對 sqlalchemy 很陌生,我遇到了一個關于 Postgres 資料庫的問題。我可以成功連接到 postgresql 資料庫,我想我已經將引擎定向到我想要的模式。
cstr = f"postgresql psycopg2://{username}:{password}@{server}:{port}/{database}"
engine = create_engine(cstr,connect_args={'options': '-csearch_path={}'.format("schema_name")},echo=True)
con = engine.connect()
print(con.execute('SELECT * FROM table_name'))
這將列印出正確的 schema_name。
insp = inspect(con)
print(insp.default_schema_name)
但是,我仍然收到錯誤訊息,指出該表不存在。
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "table_name" does not exist
我也試過不使用,connect_args={'options': '-csearch_path={}'.format("google")}子句并schema_name.table_name在 sql 查詢中使用。發生同樣的錯誤。它不是本地資料庫,因此除了從中獲取資料之外,我無法對資料庫執行任何操作。我應該在這里做什么?
uj5u.com熱心網友回復:
我不知道你的框架煉金術,但正確的查詢應該是這樣的:
SELECT table_name FROM information_schema.tables WHERE table_schema='public'
參考檔案
uj5u.com熱心網友回復:
有趣的是我如何搜索了幾個小時的答案并決定改為提問。緊接著,我找到了解決方案。以防萬一有人對答案感興趣。我從這個答案中得到了我的解決方案 使用 psycopg2 從 Postgresql 中基于模式的表中選擇資料
print(con.execute("""SELECT DISTINCT "column_name" FROM schema_name."table_name";"""))
這是做到這一點的方法,用引號引起來
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/400007.html
標籤:Python 数据库 PostgreSQL的 sqlalchemy
上一篇:在DB::select(DB::Raw)中傳遞引數時出現語法錯誤
下一篇:帶有多張桌子的預包裝房間資料庫
