我有两个数据库在同一个 PostgreSQL 9.3 服务器上运行(在 Windows 上运行)。这两个数据库具有完全相同的结构:相同的表、相同的键、相同的约束等;唯一的区别是数据会定期从一个移动到另一个。可以把它想象成一个包含客户和订单信息的数据库,其中每周与客户相关的数据(例如,2 年)从一个转移到另一个。
有没有一种快速的方法来创建组合新旧数据库中的数据的表?就像是:
select * from NewDatabase.MyTable
UNION
select * from OldDatabase.MyTable
在数据库的 170 个表中的大约 25 个上运行。
我看到的两个关键问题是:
1) PostgreSQL 并不真正允许跨数据库查询。外部数据包装器或数据库链接(如此处所述:可能使用 postgres 执行跨数据库查询?)使用起来非常麻烦,因为(如果我理解正确的话)我必须预先声明我希望访问的表的整个结构。
2)我需要找到一种方法来自动化它,以便我可以为我需要的 25 个表中的每一个自动编码,并且它每周运行一次。
只要它可以有效地自动化,我对如何完成(Pentaho-Kettle、命令脚本、sql 脚本等)没有任何偏好。
谢谢!