PostgreSQL - no me inserta todos los registro de una table

 
Vista:
sin imagen de perfil

no me inserta todos los registro de una table

Publicado por tayshaun (6 intervenciones) el 02/03/2022 15:05:32
Tengo una function en PostgreSQL que cuando ejecuto la function por primera ves me inserta todos los registro del otro servidor bien hasta ahí,pero cuando se insertan más registros en la table de ese servidor, y cuado ejecuto mi función nuevamente para tener esos registro la function se ejecuta bien pero no me inserta los registros que insertaton nuevo en dicha table, mi function es esta:

create or replace function get_data_p(
)
returns void
as $$
declare
v_info varchar(50):='no datos encontrados';
begin
perform dblink_connect('dbname=slave port=5432 host=192.168.56.101 user=postgres password=123');
perform dblink_open('p_cursor','select * from slave');
loop
perform dblink(
'dbname=master port=5432 host=192.168.56.102 user=postgres password=123','
update master set estatus =''C''
where fecha between ''01-feb-2022'' and ''02-feb-2022'' ');

insert into master
(select *
from dblink_fetch('p_cursor',1000)

as (compania integer, nombre varchar(30),fecha date,estatus varchar(5))
where not exists(select compania from master
where compania=compania
group by compania));

if not found then
raise notice '%',v_info;
end if;
exit;
end loop;
perform dblink_close('p_cursor');
perform dblink_disconnect();
end;
$$ language plpgsql;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

no me inserta todos los registro de una table

Publicado por tayshaun (6 intervenciones) el 03/03/2022 02:44:17
buenas colega ya resolvi el problema eran los alias , tambien como puedo hacer con esta misma function conectarme a varios servidores por lo menos a 5 servidores para insertar dichas informaciones esta es mi function:


create or replace function get_data_p(
)
returns void
as $$
declare
v_info varchar(50):='no datos encontrados';
begin
perform dblink_connect('dbname=slave port=5432 host=192.168.56.101 user=postgres password=123');
perform dblink_open('p_cursor','select * from slave ft');
loop
perform dblink(
'dbname=master port=5432 host=192.168.56.102 user=postgres password=123','
update master set estatus =''C''
where fecha between ''01-feb-2022'' and ''02-feb-2022'' ');

insert into master
(select *
from dblink_fetch('p_cursor' ,1000)

as ft (compania integer, nombre varchar(30),fecha date,estatus varchar(5))
where not exists(select c.compania,c.fecha from master c
where c.compania=ft.compania
and c.fecha=ft.fecha
group by c.compania));

if not found then
raise notice '%',v_info;
end if;
exit;
end loop;
perform dblink_close('p_cursor');
perform dblink_disconnect();
end;
$$ language plpgsql;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar