> Sr. Fabio, obrigado pelas respostas.
>  O que pretendo é o segundo caso citado por vc, ou seja:
>  Tenho dois dominios diferentes como se fossem matriz e filial.
>  Quero juntar os dados em um dominio só, no caso todos os dados da filial
>  importar para a matriz como clientes, fornecedores.......
>  As tabelas são iguais, só preciso trazer o conteúdo da filial para dentro da
>  matriz de todas as tabelas. Ocorre que alguns registros são iguais e neste
>  caso não importa, mas dá erro e acaba não trazendo nada.
>  Usei estas duas formas:
>  pg_dump -U postgres -at tabela_origem -h host_origem banco | psql -h
>  host_destino banco -U postgres
>  .........
>
> psql -h ip_do_banco -U postgres nome_do_banco <
>  nome_do_banco_a_ser_migrado.sql

Se você tem **chaves naturais** (Primárias) nas tabelas, será mais
simples, agora caso não possua definido, será um pouco mais
complicado....

Ex : a tabela Clientes, a PK seja o CNPJ , ao invés do id (Serial);

Caso possua as chaves, gere um DUMP com INSERTS (Não COPY, pois no
COPY ele entende todos os dados com uma unica transação e em caso de
erros,  "aborta" a execução do comando inteiro).

Caso não possua, restaure o dump em um esquema(SCHEMA) diferente e
faça como o  Fábio disse no e-mail anterior, mas filtrando pela suas
chaves uniques... pq as primárias artificiais não vão te ajudar, já
que se tratam de dados de localidades diferentes :

INSERT INTO schema_principal.Clientes SELECT * FROM
schema_temp.Clientes WHERE cnpj NOT IN (SELECT cnpj FROM
schema_principal.Clientes);

..... Isso para todas as tabelas .....

Espero ter ajudado ...

Se a modelagem bem feita , as coisas ficam mais fáceis [ O Leandro vai
adorar isso :) ]

-- 
Att:
Thiago Risso
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a