PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment formuler une requête d'insertion dans une autre base de données en utilisant postgres_fdw ?

Vous ne pouvez pas accéder directement aux tables d'une base de données différente comme vous pouvez le faire dans MySQL (une base de données MySQL correspond à un schéma PostgreSQL ).

Vous pouvez donc peut-être obtenir ce que vous voulez en utilisant différents schémas dans une seule base de données.

Si vous avez vraiment besoin de mettre à jour une table dans une base de données différente, vous devrez utiliser le wrapper de données étrangères postgres_fdw pour accéder à la table étrangère.

Vous devrez définir une table étrangère - appelons-la foreign_employee – dans la base de données db1 qui pointe vers une table dans db2 .

Ensuite, vous pourriez le faire comme ça :

INSERT INTO foreign_employee
SELECT e.*
FROM employee e
     JOIN archived a USING id
LIMIT 2;

Notez que la LIMIT est un peu étrange ici, car il n'y a pas d'ordre implicite dans un résultat de requête à moins que vous n'en forciez un avec ORDER BY .