Re: Insertar datos en tabla remota

From: Alberto Cardenas Cardenas <alberto(dot)cardenas(dot)c(dot)68(at)gmail(dot)com>
To: Hellmuth Vargas <hivs77(at)gmail(dot)com>
Cc: Anthony Sotolongo <asotolongo(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 20:14:08
Message-ID: CA+UBRzMycMgRRR475xnE1hkrS8xHfGjuiQ-cHxQMHzM5c_vbXg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gracias Hellmuth, pero no funciona lo que me indicas.

Lo que necesito es que datos que tengo en mi servidor local, puedan ser
insertados en un servidor externo con postgresql tambien en una tabla con
cierta estructura

El 29 de enero de 2018, 15:36, Hellmuth Vargas <hivs77(at)gmail(dot)com> escribió:

>
> 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
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Lazaro Garcia 2018-01-29 20:17:53 Consulta de tabla con millones de registros
Previous Message Hellmuth Vargas 2018-01-29 19:36:11 Re: Insertar datos en tabla remota