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

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to