From: | Hellmuth Vargas <hivs77(at)gmail(dot)com> |
---|---|
To: | Anthony Sotolongo <asotolongo(at)gmail(dot)com> |
Cc: | Alberto Cardenas Cardenas <alberto(dot)cardenas(dot)c(dot)68(at)gmail(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Insertar datos en tabla remota |
Date: | 2018-01-29 19:36:11 |
Message-ID: | CAN3Qy4pZp083ZL4xMW0OE4irvK9SmpLQbV2+RtoArGApYN5jYA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola Alberto
con postgres_fdw se puede inserta en una tabla remota
-- en el servidor remoto:
CREATE TABLE remota(id int, texto text, fecha timestamp);
-- no olvidar registrar en el pg_hba.conf
-- en el servidor local
CREATE EXTENSION postgres_fdw;
CREATE SERVER postgresqlserver FOREIGN DATA WRAPPER postgres_fdw;
CREATE SERVER postgresql_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host '192.168.XX.YY', port '5432', dbname 'bd_remota');
CREATE USER MAPPING FOR 'user_local'
SERVER postgresql_server
OPTIONS (user 'user_remoto', password 'pass_remoto');
CREATE FOREIGN TABLE foreign_table (
id int, texto text, fecha timestamp
)
SERVER postgresql_server
OPTIONS (schema_name 'public', table_name 'remota');
INSERT INTO foreign_table(id,texto,fecha) VALUES(1,'a',now());
INSERT INTO foreign_table(id,texto,fecha) VALUES (2,'b',now());
INSERT INTO foreign_table(id,texto,fecha) VALUES (3,'c',now());
El 29 de enero de 2018, 14:24, Anthony Sotolongo<asotolongo(at)gmail(dot)com>
escribió:
> Hola Alberto,
>
> On 29/01/18 16:15, Alberto Cardenas Cardenas wrote:
>
> Hola Hellmuth, no me sirve eso porque lo que necesito insertar es el
> resultado de unas querys en la tabla remota, no los mismos datos de la
> tabla origen, lo que debo insertar son datos procesados obtenidos desde una
> funcion local
>
> ya esto cambia un poco de tu escenario inicial donde se entendía que (las
> tablas eran la misma en ambos servidores ) :
> insert into <tabla_remota>
> select * from <tabla_local>
>
> pero bueno si lo que necesitas es un resultado procesado de una función,
> igual te ajusta el FDW, crea una tabla foránea en el local con la
> estructura que te devuelve esos datos procesados de tu función, donde esa
> tabla apunte en tu definición a la tabla remota e inserta en esa tabla
> foranea local y ella misma se hara cargo de enviártelos al remoto.
>
>
> Saludos
>
>
>
>
> Saludos
>
> El 29 de enero de 2018, 15:07, Hellmuth Vargas <hivs77(at)gmail(dot)com>
> escribió:
>
>> Hola Lista
>>
>> dado que esta empleando PostgreSQL 9.6 puede hacer uso de postgres_fdw
>>
>> https://www.postgresql.org/docs/9.6/static/postgres-fdw.html
>>
>> "F.33.1.5. Updatability Options
>> By default all foreign tables using postgres_fdw are assumed to be
>> updatable. This may be overridden using the following option:
>>
>> updatable
>> This option controls whether postgres_fdw allows foreign tables to be
>> modified using *INSERT*, UPDATE and DELETE commands. It can be specified
>> for a foreign table or a foreign server. A table-level option overrides a
>> server-level option. The default is true."
>>
>>
>> El 29 de enero de 2018, 14:00, Alberto Cardenas Cardenas<
>> alberto(dot)cardenas(dot)c(dot)68(at)gmail(dot)com> escribió:
>>
>>> Estimada Lista:
>>>
>>> Tengo el siguiente problema, necesito insertar datos desde una tabla
>>> local a una base de datos que esta en otro servidor, la tabla es la misma
>>> en ambos servidores, ambos motores son postgresql 9.6.
>>>
>>> Los datos que debo insertar son el resultado de un select. He estado
>>> leyendo que lo puedo hacer con dblink_exec, pero no se como hacerlo. Yo uso
>>> dblinks, para consultar datos entre distindas bases de datos, pero insertar
>>> de una base local a otra remota, no se como hacerlo.
>>>
>>> en el fono lo que debo hacer es lo siguiente;
>>>
>>> insert into <tabla_remota>
>>> select * from <tabla_local>
>>>
>>>
>>> Les agradeceríamucho si alguien me pudiera ayudar con mi problema
>>>
>>>
>>> Saludos Cordiales
>>>
>>> Alberto
>>>
>>>
>>
>>
>> --
>> Cordialmente,
>>
>> Ing. Hellmuth I. Vargas S.
>> Esp. Telemática y Negocios por Internet
>> Oracle Database 10g Administrator Certified Associate
>> EnterpriseDB Certified PostgreSQL 9.3 Associate
>>
>>
>
>
--
Cordialmente,
Ing. Hellmuth I. Vargas S.
Esp. Telemática y Negocios por Internet
Oracle Database 10g Administrator Certified Associate
EnterpriseDB Certified PostgreSQL 9.3 Associate
From | Date | Subject | |
---|---|---|---|
Next Message | Alberto Cardenas Cardenas | 2018-01-29 20:14:08 | Re: Insertar datos en tabla remota |
Previous Message | Anthony Sotolongo | 2018-01-29 19:24:28 | Re: Insertar datos en tabla remota |