Insert em outro banco
Tenho o seguinte problema: Preciso fazer uma function em um banco que no evento AFTER INSERT de uma determinada tabela faça um INSERT em uma outra tabela de outro banco no mesmo servidor. Isto é possível?
Impadm
Curtidas 0
Respostas
Jair Bg
29/11/2008
Bom Dia, existe uma função ´implementação´ chamada ´DBLINK´
pode ser utilizada (+-) assim:
-- 1º Fazendo uma conexão..
SELECT DBLINK_CONNECT(´my_conexao´, ´hostaddr=175.35.55.145 port=5432 dbname=my_dbpSQL user=postgres password=´);
-- 2º Inclusão de registros...
SELECT DBLINK_EXEC(´my_conexao´, ´INSERT INTO pais VALUES (999, ´´Utopia´´, ´´Utopistas´´);´);
-- 3º Atualização de registros...
SELECT DBLINK_EXEC(´my_conexao´, ´UPDATE pais SET nacionalidade_pais = ´´Brasilenhos´´ WHERE codigo_pais = 999´;´);
--4º Exclusão de registros com DBLINK_EXEC
SELECT DBLINK_EXEC(´my_conexao´, ´DELETE FROM pais WHERE codigo_pais = 999;´);
--5º Desconexão objeto de conexão...
SELECT DBLINK_DISCONNECT(´my_conexao´);
OBSERVAÇÃO: Caso ocorra erro não encontre execute isso no banco para incluir o DBLINK:
01 - Execute ´c:\interface linha de comando do postgreSQL´
02 - psql -U postgres -f c:\PostgreSQL\8.3\Share\Contrib\dblink.sql postgres
03 - Retorne ao Query do PgAdmin e executar novamente.
acrescente isso a sua função conectando ao banco, também achei terrivel , mas é uma solução...melhor seria se fosse como no SQL-Server...
pode ser utilizada (+-) assim:
-- 1º Fazendo uma conexão..
SELECT DBLINK_CONNECT(´my_conexao´, ´hostaddr=175.35.55.145 port=5432 dbname=my_dbpSQL user=postgres password=´);
-- 2º Inclusão de registros...
SELECT DBLINK_EXEC(´my_conexao´, ´INSERT INTO pais VALUES (999, ´´Utopia´´, ´´Utopistas´´);´);
-- 3º Atualização de registros...
SELECT DBLINK_EXEC(´my_conexao´, ´UPDATE pais SET nacionalidade_pais = ´´Brasilenhos´´ WHERE codigo_pais = 999´;´);
--4º Exclusão de registros com DBLINK_EXEC
SELECT DBLINK_EXEC(´my_conexao´, ´DELETE FROM pais WHERE codigo_pais = 999;´);
--5º Desconexão objeto de conexão...
SELECT DBLINK_DISCONNECT(´my_conexao´);
OBSERVAÇÃO: Caso ocorra erro não encontre execute isso no banco para incluir o DBLINK:
01 - Execute ´c:\interface linha de comando do postgreSQL´
02 - psql -U postgres -f c:\PostgreSQL\8.3\Share\Contrib\dblink.sql postgres
03 - Retorne ao Query do PgAdmin e executar novamente.
acrescente isso a sua função conectando ao banco, também achei terrivel , mas é uma solução...melhor seria se fosse como no SQL-Server...
GOSTEI 0