postgresql:INSERT INTO ...(SELECT * ...)


Answers

如果你想插入指定列:

INSERT INTO table (time)
(SELECT time FROM 
    dblink('dbname=dbtest', 'SELECT time FROM tblB') AS t(time integer) 
    WHERE time > 1000
);
Question

我不确定它的标准SQL:

 INSERT INTO tblA 
 (SELECT id, time 
    FROM tblB 
   WHERE time > 1000)  

我在寻找的是: 如果tblA和tblB在不同的数据库服务器中会发生什么

PostgreSql是否提供任何实用程序或具有任何有助于在INSERT query with PGresult struct使用INSERT query with PGresult struct功能

我的意思是SELECT id, time FROM tblB ...将使用PQexec返回一个PGresult* 。 是否有可能在另一个PQexec使用此结构来执行INSERT命令。

编辑:
如果不可能,那么我会去从PQresult *中提取值并创建一个多重INSERT语句语法,如:

INSERT INTO films (code, title, did, date_prod, kind) VALUES
    ('B6717', 'Tampopo', 110, '1985-02-10', 'Comedy'),
    ('HG120', 'The Dinner Game', 140, DEFAULT, 'Comedy'); 

是否有可能创建一个准备好的声明! :(




这个符号(首先在here看到)看起来很有用:

insert into postagem (
  resumopostagem,
  textopostagem,
  dtliberacaopostagem,
  idmediaimgpostagem,
  idcatolico,
  idminisermao,
  idtipopostagem
) select
  resumominisermao,
  textominisermao,
  diaminisermao,
  idmediaimgminisermao,
  idcatolico ,
  idminisermao,
  1
from
  minisermao    



Links