
I created a Foreign Key (REFERENCES) constraint on
a table like this (some columns ommited) :
CREATE TABLE tablename (
  id_tablename	   INTEGER DEFAULT nextval('id_tablename_seq'),
  tablename_parent INTEGER CONSTRAINT tablename_parent_fk
    REFERENCES tablename (id_tablename),
  CONSTRAINT tablename_pk PRIMARY KEY (id_tablename)
);

When I pg_dump, I can see three triggers :
The first calls RI_FKey_check_ins AFTER INSERT OR UPDATE,
the second one calls RI_FKey_noaction_del AFTER DELETE,
the third one calls RI_FKey_noaction_upd AFTER UPDATE.

All the triggers and procedure calls have the same parameters.


I browsed the docs, looked at :
http://techdocs.postgresql.org/techdocs/hackingreferentialintegrity.php

and asked pgsql-docs but I couldn't find what they
really do. Can someone give me information about
those Triggers created for FKey RI ?


Best Regards,

Jean-Francois Leveque


______________________________________________________________________
Sur WebMailS.com, mon adresse de courrier �lectronique gratuite.
Service multilingue, s�r, et permanent. http://www.webmails.com/

Fri, 8 Jun 2001 14:21:56 +0100
"Jean-Francois Leveque" <leveque@webmails.com>
Need information about Foreign Key created Triggers
On Fri, 8 Jun 2001, Jean-Francois Leveque wrote:

> 
> I created a Foreign Key (REFERENCES) constraint on
> a table like this (some columns ommited) :
> CREATE TABLE tablename (
>   id_tablename	   INTEGER DEFAULT nextval('id_tablename_seq'),
>   tablename_parent INTEGER CONSTRAINT tablename_parent_fk
>     REFERENCES tablename (id_tablename),
>   CONSTRAINT tablename_pk PRIMARY KEY (id_tablename)
> );
> 
> When I pg_dump, I can see three triggers :
> The first calls RI_FKey_check_ins AFTER INSERT OR UPDATE,
> the second one calls RI_FKey_noaction_del AFTER DELETE,
> the third one calls RI_FKey_noaction_upd AFTER UPDATE.
> 
> All the triggers and procedure calls have the same parameters.
> 
> 
> I browsed the docs, looked at :
> http://techdocs.postgresql.org/techdocs/hackingreferentialintegrity.php
> 
> and asked pgsql-docs but I couldn't find what they
> really do. Can someone give me information about
> those Triggers created for FKey RI ?

It's in the archives somewhere, but...

The functions take the same args, but the name of the functions says
what it's going to do and the table that the trigger and the action
(AFTER ?) tells you when it does it.

RI_FKey_check_ins checks a newly inserted or updated row in the FK
 table against the PK table rows.
RI_FKey_<something>_del does the referential action <something>,
 in your case no action, when a row is deleted from the PK table.
RI_FKey_<something>_upd does the referential action <something>,
 in your case no action, when a row is updated in the PK table.

IIRC, The arguments are 
 name of constraint, fk table, pk table, match type,
 fk col 1, pk col1, ... fk col n, pk col n





Fri, 8 Jun 2001 08:09:40 -0700 (PDT)
Stephan Szabo <sszabo@megazone23.bigpanda.com>
Re: Need information about Foreign Key created Triggers