0

我在 PostgreSQL 9.1 数据库中有 32 个具有完全相同架构(即相同的列名等)的表,我想从它们创建一个新表(这样我就可以统一查询)。

我知道我可以逐表使用 INSERT SELECT 技术,但我想知道它是否是一种更好的方法。也许是一个for循环?

提前致谢

4

1 回答 1

0

如果您的表确实具有相同的列名和类型,也许这样的事情应该有效:

SELECT 'INSERT INTO myschema.mynewtable SELECT * FROM ' || table_schema || '.' || table_name || ';'
  FROM information_schema.tables 
  WHERE table_schema='myschema' AND table_name LIKE 'old%';

这将输出INSERT您可以执行的语句以插入旧表中的数据。可以使用 PL/SQL 过程自动执行它们。但是,如果您只需要这样做一次,我认为手动执行它们会更容易。

于 2013-06-30T20:26:26.240 回答