다음은 실행하려는 쿼리입니다.이 쿼리를 실행중인 현재 데이터베이스를 db1로하고 레코드를 삽입하려는 데이터베이스를 db2라고합시다. 당신이 볼 수 있듯이postgres_fdw를 사용하여 삽입 쿼리를 다른 데이터베이스에 공식화하는 방법은 무엇입니까?
insert into db2.employee(id, name, group) values(id, <db1.employee.name>, <db1.employee.group>) where id in (select id from archived limit 2);
는 값은 DB1 (현재 데이터베이스)의 직원 테이블에서 선택하고 DB2의 직원 테이블에 삽입해야합니다.
나는 쿼리가 잘못되었다는 것을 알고있다. 그러나 나는 지금 내가하려고하는 것을 설명하기 위해 작성했다.
어떻게하면 postgres_fdw를 사용하여 쿼리를 공식화 할 수 있습니까?
내가이 쿼리를 사용하여 다른 방법으로 라운드 무언가를 시도
INSERT INTO employee select * from
dblink('host=10.1.1.1
user=user
password=password
dbname=mydb', 'select * from employee') tt(
id int,
name character varying,
);
편집 : 원격 삽입 및 로컬 선택을하고 싶지 있습니다. db에서 대신 내 로컬 데이터베이스로 db2 쿼리를 실행할 때 위 쿼리를 사용할 수있는 것 같습니다
다음 실제 테이블에 행을 삽입 - 외국 테이블에서 db2.employee - 어떻게 할 수 있습니까? – Tisha
'db2.employee' *는 * 외부 테이블인가? 두 테이블에'WITH x AS (INSERT ... RETURNING ...) INSERT ... SELECT ... FROM x'와 같은 것을 사용하고 싶다면. –
db2.employee는 db2에있는 실제 테이블입니다. 그것은 db1.employee와 동일한 스키마를 가지고 있습니다. – Tisha