I am studying ways to implement audit tables to my PostgreSQL database and would like to know if it is possible to make a trigger for the data to be written to a table in a database other than the source database.

1 Answer 1


You can do that with the help of the additional module dblink. Install once per database (the one where the trigger is executed):


You need superuser privileges (in the database cluster where the trigger runs) for some of the involved functionality.

Since you want to write to the external database, you will probably want to use dblink_exec(). The manual has code examples.

Or try a search here for more dblink examples.

Note that you cannot ROLLBACK what you have written with dblink to an external database. A local exception after the external write does not undo what's written in the foreign database.

  • Thank you, i'll read more about it and perform some tests. Commented Nov 28, 2012 at 17:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.