実行したいクエリは次のとおりです。このクエリを実行している現在のデータベースは db1 であり、レコードを挿入するデータベースは db2 です。
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,
);
編集:リモート挿入とローカル選択を行いたいことに注意してください。db1の代わりにローカルデータベースとしてdb2でクエリを実行すると、上記のクエリを使用してこれを達成できるようです