根据下面的错误消息(和this Google result),我猜答案是“否”,但是有没有办法使用PostgreSQL执行跨数据库查询呢?
databaseA=# select * from databaseB.public.someTableName;
ERROR: cross-database references are not implemented:
"databaseB.public.someTableName"我正在处理一些跨两个数据库分区的数据,尽管数据实际上是在这两个数据库之间共享的(一个数据库中的userid列来自另一个数据库中的users表)。我不知道为什么这是两个独立的数据库,而不是模式,但请注意……
发布于 2008-09-05 17:17:56
在我对跨数据库查询得出与您相同的结论之前,我已经遇到过这种情况。我最终所做的是使用模式来划分表空间,这样我就可以保持表的分组,但仍然可以查询所有表。
发布于 2008-09-22 05:47:11
可以,您可以使用DBlink (仅限postgresql)和DBI-Link (允许外部跨数据库查询器)和TDS_LInk (允许在MS SQL server上运行查询)。
我以前使用过DB-Link和TDS-link,非常成功。
发布于 2008-09-12 15:56:32
如果性能很重要,并且大多数查询都是只读的,我建议将数据复制到另一个数据库。虽然这似乎是不必要的重复数据,但如果需要索引,它可能会有所帮助。
这可以使用简单的on insert触发器来完成,这些触发器反过来调用dblink来更新另一个副本。也有成熟的复制选项(如Slony),但这是离题的。
https://stackoverflow.com/questions/46324
复制相似问题