Re: creating a trigger to access another postgres database? - Mailing list pgsql-general

From Richard Huxton
Subject Re: creating a trigger to access another postgres database?
Date
Msg-id 47EDF82D.8020504@archonet.com
Whole thread Raw
In response to Re: creating a trigger to access another postgres database?  (carty mc <cartymc3@yahoo.com>)
Responses Re: creating a trigger to access another postgres database?  (carty mc <cartymc3@yahoo.com>)
List pgsql-general
carty mc wrote:
> Thanks Richard, I went through dblink and tried it . But I am not
> able to pass variables to sql stmt of dblink_exec function .
> Basically If I hardcode the values for updating a table for the sql
> statement in different database it is working fine. But What I wanted
> to do is get the info from existing modified row and pass that into
> the update query which I am writing inside dblink_exec call.
>
> my sql inside dblink_exec call would look like UPDATE my_table set
> myotherDBTableField =  NEW.currDBTableField WHERE {condition}

dblink takes SQL as text - it's really just another external client as
far as the other database is concerned. You'll want to build your
query-string as a string:

mySql := 'UPDATE mytable SET f = ' || quote_literal(NEW.f) || ' WHERE ...'
dblink(connstr, mySql);

Don't forget to consider how NULLs will affect the query-string. See the
string-functions section of the manuals for quote_literal/quote_ident.

--
   Richard Huxton
   Archonet Ltd

pgsql-general by date:

Previous
From: Shane Ambler
Date:
Subject: Re: Using tables in other PostGreSQL database
Next
From: Gregory Stark
Date:
Subject: Re: Merge Joins and Views