我在两台不同的服务器上有两个不同的 Postgres 数据库(一个实际上是本地的)。与此问题类似,我想同时使用两个数据库。但是,我不知道如何使用psycopg2
.
所以我想我可能需要两个不同的游标:
conn_local = psycopg2.connect(dbname='local_db', host='localhost')
conn_remote = psycopg2.connect(dbname='remote_db', host='some.other.server')
curs_local = conn_local.cursor()
curs_remote = conn_remote.cursor()
Run Code Online (Sandbox Code Playgroud)
但是我该如何处理这些数据库呢?例如,当我尝试连接两个表中的数据时:
curs_local.execute("""
CREATE TABLE local_db.public.newtable AS
SELECT remote_db.public.remotetable.rcolumn AS col_from_remote,
local_db.public.localtable.lcolumn AS col_from_local
FROM remote_db.public.remotetable, local_db.public.localtable""")
Run Code Online (Sandbox Code Playgroud)
的样式会有错误psycopg2.NotSupportedError: cross-database references are not implemented: "local_db.public.new_table"
。该ATTACH TABLE
命令(如此处的解决方案中所述)在 Postgres/psycopg2 中显然不存在。
是否可以同时使用多个数据库?如何?
或者将我必须从复制(导出/导入)中的数据remote_db
,以local_db
第一?