我正在使用Postgresql
数据库。我有一个数据库 - db1
,我在这个数据库中有一个表App1
。
我需要对App1
中的db1
表进行选择查询,然后我得到的结果是什么,我需要将它们插入到App2
表中,因为它是这是在另一个数据库db2
。
以下是我针对App1
中的db1
表运行的查询 -
select col1, col2 from App1 limit 5
现在有什么方法可以使用Insert语句和上面的SELECT语句,它可以自动插入到App2表中db2
?
沿着这条线的东西 -
Insert into … values ( SELECT … FROM … )
这是否可以在Postgresql中执行,因为这两个表都在不同的数据库中?
答案 0 :(得分:3)
要在数据库之间执行此操作,您必须使用the foreign data wrapper postgres_fdw
或use dblink
。请参阅文档。 PostgreSQL不支持跨数据库SELECT
。
通常,如果您发现自己想要这样做,那么您应该在单个数据库中使用单独的模式。
INSERT INTO ... SELECT ...
即。没有子查询,没有括号。那是因为VALUES
子句实际上也是一个独立的语句:
INSERT INTO ... VALUES ...
观察:
regress=> VALUES (1,2), (2,3);
column1 | column2
---------+---------
1 | 2
2 | 3
(2 rows)