Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: Advice for generalizing trigger functions



On Dec 27, 2007, at 12:03 PM, Richard Broersma Jr wrote:

--- On Thu, 12/27/07, Erik Jones <erik(at)myemma(dot)com> wrote:

TG_TABLE_NAME will have the name of the table the trigger
was fired  on.  With that and using EXECUTE for your INSERT
statements, you'll  probably be set.

True the table name is the easy part, but how do I determine the Primary Key components of the table that will also be needed in the SQL string that will be executed?

That depends on how generalized you want this trigger function to be. If you have a set number of tables you can branch on the table name to determine the id column. That's brittle and would require updating the the function every time you want to use if for a new table type but if there's a limited number of tables it may work for you. Another way to go would be to the table name to join across pg_class, pg_attribute, and pg_constraint. Take a look at the table layouts for those in the manual and it should be pretty clear how to do that.

Erik Jones

Software Developer | Emma®
erik(at)myemma(dot)com
800.595.4401 or 615.292.5888
615.292.0777 (fax)

Emma helps organizations everywhere communicate & market in style.
Visit us online at http://www.myemma.com





Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group