作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 Postgresql
数据库。我有一个数据库,它是 - db1
,我在这个数据库中有一个表,它是 App1
。
我需要针对 db1
中的这个 App1
表进行选择查询,然后无论我得到什么结果,我都需要将它们插入 App2
表原样在另一个数据库 db2
中。
下面是我针对 db1
中的 App1
表运行的查询 -
select col1, col2 from App1 limit 5
现在有什么方法可以将 Insert 语句与上面的 SELECT 语句一起使用,它可以自动插入到 db2
中的 App2 表中吗?
沿着这条线的东西-
Insert into … values ( SELECT … FROM … )
因为两个表都在不同的数据库中,所以这可以在 Postgresql 中执行吗?
最佳答案
要在数据库之间执行此操作,您必须使用 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)
关于sql - 在 postgresql 中插入 ... 值(SELECT ... FROM ...)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22138856/
我是一名优秀的程序员,十分优秀!