Jump to content

Atualizar tabela a partir de outra base de dados.


Recommended Posts

Posted

Boas malta, gostava de saber como posso atualizar uma tabela numa base de dados a partir de dados disponíveis numa outra tabela de outra base de dados, imaginemos:

Esta é uma tabela de funcionários onde o ref_id corresponde ao número do cartão e o num_colab ao número de colaborador.

Existe uma base de dados com estes números de colaborador que serão sempre os mesmos e os respetivos cartões que podem sofrer alterações por exemplo se perder o cartão, se partir o cartão, etc.

A minha dúvida é se a partir dessa tabela sempre atualizada posso atualizar a tabela da minha base de dados que atualmente precisa de ser atualizada manualmente através de um backoffice na aplicação.

Unknown.png

Alguma sugestão?

Posted

Se a tua aplicação tem acesso às duas BDs, podes, por exemplo, disponibilizar no backoffice da tua aplicação um botão "sincronizar".

Este botão chamaria uma função que obtinha o ref_id associado a um num_colab em cada tabela, e quando fossem diferentes, procedia aos updates necessários.

Isto seria um mecanismo rudimentar, e não muito eficiente, que certamente conseguirás melhor para o teu caso em particular.

Posted

Hum..é assim como não sei ainda como fazer todas as opiniões são bem vindas, mas dizes que é pouco eficiente, conheces outra forma mais eficiente?se calhar não deveria ser feito na aplicação mas diretamente por si nas bases de dados, um trigger por exemplo, que quando é atualizado dispara uma ação...mas claro, gostava de mais opiniões, vamos ver se alguém aparece aqui com a formula...

Posted

então só estou a ver uma solução :

- configurar a base de dados com os dados a serem acedidos como "replication master"

- configurar a base de dados da tua aplicação como "replication slave"

- configurar o processo de replicação da base de dados

agora é aceder à base de dados local ao teu servidor, e isso será mais fácil ...

  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
Posted

Obrigado, ainda tenho que ver melhor como vou fazer porque não sou eu que faço a gestão da outra base de dados nem acesso a ela..mas sei que está sempre atualizada por uma aplicação da siemens chamada sipass que tenho que ir buscar os tais dados dos cartões, quando tiver novidades aviso. Já deu para ficar com uma ideia do que é necessário fazer...

Posted

Mas as bases de dados são iguais? (Fiquei com a ideia que as tabelas em causa eram diferentes, e como tal as BDs seriam também diferentes.)

Penso que a replicação se aplica aos casos em que temos BDs iguais.

Hum..é assim como não sei ainda como fazer todas as opiniões são bem vindas, mas dizes que é pouco eficiente, conheces outra forma mais eficiente?se calhar não deveria ser feito na aplicação mas diretamente por si nas bases de dados, um trigger por exemplo, que quando é atualizado dispara uma ação...mas claro, gostava de mais opiniões, vamos ver se alguém aparece aqui com a formula...

Relativamente à eficiência, podes ter um sistema na BD original para te guardar as alterações feitas desde a última sincronização, de modo a que depois também saibas exactamente o que é que tens que actualizar, em vez de verificares tudo. Mas para isto terias que mexer na BD de origem (ou pelo menos na aplicação que faz as alterações).

Posted (edited)

@RuiCarlos : não necessariamente, se o problema é aceder a dados fora do servidor (independente da estrutura destes), a solução mais prática é replicar os dados localmente, isto porque é possível com grande facilidade aceder a dados de outra BD no mesmo servidor.

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Posted

mas assim essa copia local teria que estar atualizada também, porque não fazer diretamente?isto sou eu a perguntar, nunca o fiz, posso estar a ser burro quanto a este assunto mas na sei mesmo do que se trata..nunca o fiz...

Posted

ok ok, é sobre o que tinhas falado no inicio sobre o replication manter e o replication salve..já percebi como funciona e qual será o processo a efetuar, agora e saber como funciona a replicação e aplicar ao meu problema 😉

Obrigado por me esclarecerem.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.