Avelino Brun escreveu:
> 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
> 
> Atenciosamente
> Avelino Brun
> ----- Original Message ----- 
> From: "Fábio Telles Rodriguez" <[EMAIL PROTECTED]>
> To: "Comunidade PostgreSQL Brasileira" <pgbr-geral@listas.postgresql.org.br>
> Sent: Friday, May 02, 2008 9:11 AM
> Subject: Re: [pgbr-geral] Como juntar dois bancos de dados
> 
> 
> 2008/5/1 Avelino Brun <[EMAIL PROTECTED]>:
>> Fábio, obrigado pela dica.
>>   Fiz o teste, porém se tiver um registro duplicado não faz nada.
>>  Tem alguma instrução que permita gravar os registros que estão corretos?
>>  Usei desta forma a volta do backup
>>  psql -h ip_do_banco -U postgres nome_do_banco <
>>  nome_do_banco_a_ser_migrado.sql
>>
> 
> Caro Avelino. Você tem que definir melhor o seu problema para que nós
> possamos te ajudar efetivamente. Veja que você não explicou exatamente
> o que você está querendo juntar.
> 
> * Você pode estar querendo juntar 2 bancos de dados que possuem
> objetos diferentes, um com tabelas da contabilidade e outro com
> tabelas de RH. Neste caso, você só precisa criar esquemas diferentes
> no mesmo banco de dados e importar os objetos nos seus respectivos
> esquemas.
> * Você pode estar querendo juntar 2 bancos de dados que possuem os
> mesmos ojetos mas possuem dados separados, como dois clientes
> diferentes ou duas filiais da mesma empresa. Aqui o caso é
> completamente diferente, pois você terá que importar os dados em
> esquemas distintos e depois adicionar os dados de cada tabela em outra
> com um
> "INSERT INTO tabela_x SELECT * FROM tabela_y WHERE campo_pk NOT IN
> (SELECT campo_pk FROM tabela_x)"
> 
> Veja se o que você precisa se enquadra em algum dos dois casos antes
> de mais nada. Até agora não consegui descobrir exatatamente o que você
> precisa.
> 


Você precisa definir melhor o que deseja.
Em primeiro lugar você utiliza o verbo "juntar" que lembra junção que 
é uma operação muito bem definida mas, pelo que você disse 
posteriormente, não é o que deseja.

Me parece que você deseja mesclar duas tabelas que tem a mesma definição.
Você precisa definir o que são "registros iguais":
- todo o conteúdo é igual?
- apenas a chave é igual? qual chave?

Depois você precisa decidir o que fazer quando você encontra dois 
registros iguais:
- ignorar os dois;
- utilizar sempre o do banco 1;
- utilizar sempre o do banco 2;
- utilizar qualquer um dos dois;
- quer escolher caso a caso qual deve permanecer;
- nenhuma das alternativas anteriores.

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

Responder a