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