Re: check foreign constraints before delete

From: Michael Fuhr <mike(at)fuhr(dot)org>
To: Robert Wimmer <seppwimmer(at)hotmail(dot)com>
Cc: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: check foreign constraints before delete
Date: 2005-09-22 03:38:47
Message-ID: 20050922033847.GB90411@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

On Wed, Sep 21, 2005 at 11:43:23PM +0000, Robert Wimmer wrote:
> i want to write a function in plpgsql, which checks a foreign key
> constraint violation on deleting a special value in my table. for example
>
> CREATE TABLE to (n NAME PRIMARY KEY);
> CREATE TABLE t1 (n_name NAME REFERENCES to(n), id INTEGER ...);
>
> CREATE FUNCTION check_before_delete(..some value ...) RETURNS INTEGER AS '
> ..
> IF foreign_key_violation THEN RETURN -1 END IF;
> RETURN 0;
> ..
> END;

In PostgreSQL 8.0 you could use an EXCEPTION clause:

http://www.postgresql.org/docs/8.0/interactive/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING

--
Michael Fuhr

In response to

Browse pgsql-interfaces by date

  From Date Subject
Next Message Ibrahim Noorzaie 2005-09-22 06:13:31 where to get libpq for postgres 8 - please help!
Previous Message Robert Wimmer 2005-09-21 23:43:23 check foreign constraints before delete