postgresql
EXTENSION dblink y postgres_fdw
Buscar..
Sintaxis
dblink ('dbname = name_db_distance port = PortOfDB host = HostOfDB usuario = usernameDB contraseña = passwordDB', 'MY QUESRY')
dbname = nombre de la base de datos
puerto = puerto de la base de datos
host = host de la base de datos
usuario = nombre de usuario de la base de datos
contraseña = contraseña de la base de datos ',
MI PREGUNTA = esto puede ser cualquier operación que quiera hacer SELECCIONAR, INSERTAR, ...
Extensión dblink
EXTENSIÓN de dblink es una técnica para conectar otra base de datos y hacer que esta base de datos funcione, para hacer lo que necesita:
1-Crear una extensión dblink:
CREATE EXTENSION dblink;
2-Haz tu operación:
Por ejemplo, seleccione algún atributo de otra tabla en otra base de datos:
SELECT * FROM
dblink ('dbname = bd_distance port = 5432 host = 10.6.6.6 user = username
password = passw@rd', 'SELECT id, code FROM schema.table')
AS newTable(id INTEGER, code character varying);
Extensión FDW
FDW es una implementación de dblink, es más útil, así que para usarlo:
1-Crear una extensión:
CREATE EXTENSION postgres_fdw;
2-Crear SERVIDOR:
CREATE SERVER name_srv FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'hostname',
dbname 'bd_name', port '5432');
3-Crear mapeo de usuario para servidor postgres
CREATE USER MAPPING FOR postgres SERVER name_srv OPTIONS(user 'postgres', password 'password');
4-Crear tabla extranjera:
CREATE FOREIGN TABLE table_foreign (id INTEGER, code character varying)
SERVER name_srv OPTIONS(schema_name 'schema', table_name 'table');
5-usa esta tabla externa como está en tu base de datos:
SELECT * FROM table_foreign;
Contenedor de datos extranjeros
Para acceder al esquema completo de la base de datos del servidor en lugar de una sola tabla. Siga los siguientes pasos:
- Crear EXTENSIÓN:
CREATE EXTENSION postgres_fdw;
- Crear SERVIDOR:
CREATE SERVER server_name FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'host_ip', dbname 'db_name', port 'port_number');
- Crear mapeo de usuario:
CREATE USER MAPPING FOR CURRENT_USER SERVER server_name OPTIONS (user 'user_name', password 'password');
- Cree un nuevo esquema para acceder al esquema de la base de datos del servidor:
CREATE SCHEMA schema_name;
- Importar esquema del servidor:
IMPORT FOREIGN SCHEMA schema_name_to_import_from_remote_db FROM SERVER server_name INTO schema_name;
- Acceda a cualquier tabla de esquema de servidor:
SELECT * FROM schema_name.table_name;
Esto se puede usar para acceder a múltiples esquemas de bases de datos remotas.