Sr. Osvaldo!
O que pretendo é com um comando simples trazer os dados da filial para a 
matriz, desconsiderando os dados que já existirem na tabela.
É claro que tenho o banco de dados bem organizado com indices e tudo o mais.
O que pretendo é um comando único que me traga o conteúdo todo da filial 
para a matriz.
Se algum registro já existir não precisa trazer. E nem quero ficar fazendo 
testes.
Simples, trazer todos os clientes da filial, trazer todos os fornecedores da 
filial, todas duplicatas, todos os pagamentos e assim por diante, mas com um 
comando único.

Se ainda não entendem o que quero dizer coloco o seguinte:
Tenho dois bancos de dados, um na matriz(matriz), outro na filial(filial).
Quero trabalhar apenas com um banco de dados(geral).
Como faço para que num banco de dados contenha todos os dados da matriz e 
filial, mas com uma instrução única?

Atenciosamente
Avelino Brun
----- Original Message ----- 
From: "Osvaldo Rosario Kussama" <[EMAIL PROTECTED]>
To: "Comunidade PostgreSQL Brasileira" <[email protected]>
Sent: Friday, May 02, 2008 11:07 AM
Subject: Re: [pgbr-geral] Como juntar dois bancos de dados


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" 
> <[email protected]>
> 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
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a